有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java连接到UI线程安全Android

使用从AsyncTask的doInBackground()方法在主UI线程中声明的对象的实例是否安全


共 (3) 个答案

  1. # 1 楼答案

    您的问题更多的是关于Java线程和线程之间的对象访问

    请看一下这个例子,以便更好地理解主题Threadining Example

  2. # 2 楼答案

    这是不安全的,因为创建Asynctask的活动/片段在它完成执行时不在那里,可能是因为屏幕旋转。您应该将所需的对象作为参数传递。要更新UI,应该使用postExecute方法

    如果你只是指线程安全,在安卓3中。如果您只使用AsyncTak,那么x+应该是线程安全的,因为AsyncTasks是在串行执行器上执行的。在Android2.3上,这些命令是并行执行的

    编辑

    如果需要从AsyncTask的doInBackground方法修改UI,可以使用activity方法runOnUiThread

  3. # 3 楼答案

    我不太明白你所说的“在主UI线程中声明”是什么意思,线程不声明任何东西。我想你的意思是在Activity上声明的。然后是的,只需确保没有并发问题(例如,一个线程正在读取,而另一个线程正在同一个实例上写入)synchronizedvolatile是你的朋友