當我在AsyncTask#doInBackground中使用Android上下文時,線程安全嗎?上下文是通過構造函數或通過周圍Activity的getApplicationContext()提供的。這個簡單的問題在stackoverflow被問及很多,但是我發現沒有一個明確的答案?Android上下文線程安全嗎?
E.g.在doInBackground()中,我使用上下文來實例化一個DAO類。
@Override
protected Void doInBackground(Void... params) {
ExampleDao dao = new ExampleDao(context);
...
}
我看見幾個例子做,在這種方式,但我不能想象這是線程安全的,因爲上下文現在由主胎面(UI線程)和工作者線程訪問。
你能否請你多認真一點,你在做什麼? –
爲什麼不應該是線程安全的?工作者線程使用上下文訪問文件系統,UI線程使用上下文處理所有與UI相關的內容。對於訪問相同資源的混合調用應該不會有問題等。 – Janusz