2015-08-14 106 views
2

因此,我正在處理一些執行看似異步任務的代碼,並使用典型的回調/偵聽器模型來接收回調。Loopers - 處理程序 - 線程

我的問題是,如果我阻止調用該操作的線程,有時回調從不會觸發。

考慮下面的代碼片斷:

doAsync(new Callback(){ 

    // Callback here 
}); 

doAsync()的內部使用的處理程序和main looper

考慮到我把這個代碼從Thread A中調出來,有人可以在這次調用之後概述阻塞Thread A的影響。

另外,在main looperlocal looper上運行處理程序會產生什麼影響,它會確定執行上述回調的線程?我問這個,因爲如果我阻止Thread A那麼回調從不執行。

回答

0

調用異步任務不會阻塞主線程... doInBackground方法執行後臺線程中的操作...如果您想在後臺執行完成後更新UI,則必須重寫onPostExecute()方法....還有一些其他UI線程的鉤子太像onProgressUpdate和OnCancelled在AsyncTask ....請檢查AsyncTask的文檔的詳細信息

+0

嗨,感謝您的輸入,但我的問題與Async無關任務。 – conor