使用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