假設我有一個內部類擴展asynctask,名爲A,外部類擴展活動B. A中的代碼訪問或修改Activity B中的實例變量是線程安全的嗎?訪問或修改AsyncTask中的實例變量
0
A
回答
1
不,an AsyncTask runs in a separate thread因此,如果在運行AsyncTask時Activity和AsyncTask共享狀態(在本例中爲實例變量),則必須執行常規的線程同步。
通常,爲了簡化操作,您需要實現onPublishProgress()
和onPostExecute()
以將狀態從AsyncTask發佈到Activity,因爲這兩個方法都發布爲在UI線程中運行。
1
如果您直接訪問實例而沒有synchronize
,則不可以,代碼爲而不是線程安全。 您必須使用synchronize
或只是簡單地訪問onPublishProggress()
方法AsyncTask
的實例。
相關問題
- 1. 從AsyncTask中的活動訪問實例變量
- 2. 修改JavaScript訪問變量
- 3. 訪問實例變量
- 4. Ruby實例變量訪問
- 5. 訪問實例變量
- 6. 訪問實例變量
- 7. coffeescript訪問實例變量
- 8. Python - 實例變量訪問
- 9. Java訪問實例變量
- 10. 訪問類實例變量
- 11. 訪問rspec中的實例變量
- 12. 子類中的實例變量訪問
- 13. 修改實例變量的名稱
- 14. ASyncTask修改主線程上的變量
- 15. 在AngularJS中訪問Rails實例變量
- 16. 在Ruby中訪問實例變量
- 17. 實例變量在不修改循環
- 18. 修改私有實例變量
- 19. 修改後重置實例變量
- 20. 訪問實例變量的值scala
- 21. 訪問實例變量 - Objective-C的
- 22. JNI訪問對象的實例變量
- 23. 在對象實例中使用實例變量或靜態變量,這些變量或靜態變量只會一次實例化,不會從外部訪問?
- 24. Ruby實例變量是否具有訪問修飾符?
- 25. Java實例變量可訪問性
- 26. 變量有權訪問實例方法
- 27. 通過coffeescript訪問實例變量
- 28. 訪問父類實例變量
- 29. 從方法實例訪問此變量
- 30. 訪問實例變量從View