java连接到UI线程安全Android 10 月,4 周 Questions & Answers 163 使用从AsyncTask的doInBackground()方法在主UI线程中声明的对象的实例是否安全
# 2 楼答案 这是不安全的,因为创建Asynctask的活动/片段在它完成执行时不在那里,可能是因为屏幕旋转。您应该将所需的对象作为参数传递。要更新UI,应该使用postExecute方法 如果你只是指线程安全,在安卓3中。如果您只使用AsyncTak,那么x+应该是线程安全的,因为AsyncTasks是在串行执行器上执行的。在Android2.3上,这些命令是并行执行的 编辑 如果需要从AsyncTask的doInBackground方法修改UI,可以使用activity方法runOnUiThread
# 3 楼答案 我不太明白你所说的“在主UI线程中声明”是什么意思,线程不声明任何东西。我想你的意思是在Activity上声明的。然后是的,只需确保没有并发问题(例如,一个线程正在读取,而另一个线程正在同一个实例上写入)synchronized和volatile是你的朋友
# 1 楼答案
您的问题更多的是关于Java线程和线程之间的对象访问
请看一下这个例子,以便更好地理解主题Threadining Example
# 2 楼答案
这是不安全的,因为创建Asynctask的活动/片段在它完成执行时不在那里,可能是因为屏幕旋转。您应该将所需的对象作为参数传递。要更新UI,应该使用postExecute方法
如果你只是指线程安全,在安卓3中。如果您只使用AsyncTak,那么x+应该是线程安全的,因为AsyncTasks是在串行执行器上执行的。在Android2.3上,这些命令是并行执行的
编辑
如果需要从AsyncTask的doInBackground方法修改UI,可以使用activity方法runOnUiThread
# 3 楼答案
我不太明白你所说的“在主UI线程中声明”是什么意思,线程不声明任何东西。我想你的意思是在
Activity
上声明的。然后是的,只需确保没有并发问题(例如,一个线程正在读取,而另一个线程正在同一个实例上写入)synchronized
和volatile
是你的朋友