使用AsyncTask的doInBackground()方法在主UI线程中声明的对象的实例是否安全?安全地连接到UI线程Android
回答
我不太明白是什么意思,“在主UI线程中声明”,线程不声明任何东西。我假设你的意思是在Activity
上宣布。那么是的,只要确保你没有并发问题(例如,当另一个人在同一个实例上写入时读取线程)。和volatile
是你的朋友。
我找不到同步的官方java文档,你能给我一个链接或例子如何做一个同步的方法? – astralmaster 2013-02-14 17:24:16
'synchronized'和'volatile'是Java。 – m0skit0 2013-02-14 17:25:02
我知道了,你能给我一个官方文档的链接吗? – astralmaster 2013-02-14 17:26:02
这是不安全的,因为创建Asynctask的Activity/Fragment在完成执行时可能不在那里,可能是因为屏幕旋转。你应该传递你需要的对象作为参数。为了更新UI,你应该使用postExecute方法。
如果你只是表示线程安全的,在android 3.x +中应该是线程安全的,如果你只使用AsyncTaks,因为AsyncTasks是在串行执行器上执行的。在Android 2.3上同时执行。
编辑
如果您需要从的AsyncTask的doInBackground方法修改UI,你可以使用活动方法runOnUiThread
你的问题更多的是关于Java线程和对象的线程之间的访问。
请看看这个例子来制定有关你使用的意思的话题Threadining Example
- 1. UI线程安全
- 2. 安全地从Android应用程序连接到webservice
- 3. JAX-ws连接拉和线程安全
- 4. Java线程安全数据库连接
- 5. 安全地连接到ldap傻瓜
- 6. 安全地从Java连接到Mysql?
- 7. 安全地连接到SQL Azure的
- 8. 安全连接在android中
- 9. 安全地取消线程
- 10. 安全地停止线程
- 11. 使用c连接到安全的无线连接#
- 12. Android runOnUiThread线程安全
- 13. Android线程安全SharedPreferences
- 14. Android DownloadManager线程安全吗?
- 15. 线程安全RNG Android NDK
- 16. 链接线程安全集合线程安全吗?
- 17. 安全远程mySQL连接
- 18. 将python程序安全地连接到mysql
- 19. C# - 安全地连接到远程SQL Server?
- 20. java线程安全:线程安全吗?
- 21. 安全连接
- 22. 你能安全地调用“getDrawable”或“decodeResource”在UI线程中的Android
- 23. Android是否安全地假设“主/ UI线程”ID始终为1?
- 24. Android连接到运行线程
- 25. Android-连接到服务器的线程
- 26. Android中的线程安全数据管理以保持UI线程免费
- 27. Android LruCache(Android 3.1)线程安全
- 28. WebSocket安全本地主机连接
- 29. Android UI线程
- 30. 针对线程安全调用的目标UI线程控制
有很好的理解? – 2013-02-14 17:25:27
调用方法。 – astralmaster 2013-02-14 17:28:26