[英]Android - Run response call in main thread
我想制作下載器,它下載數據然后在 UI 線程中調用函數。 我在主要活動中有這個
onCreate(){
...
dataRepository.downloadIfNewOrEmpty(new DownloadResponse() {
@Override
public void SuccessResponse(Response response) {
// do something in UI
}
});
}
我的函數downloadIfNewOrEmpty
現在只使用 sleep() 查找簡單
public void downloadIfNewOrEmpty(final DownloadResponse response){
//final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
response.SuccessResponse(ResponseCode.SUCCESS);
/*handler.post(new Runnable() {
@Override
public void run() {
response.SuccessResponse(ResponseCode.SUCCESS);
}
});*/
}catch (Exception e){
// Log...
}
}
}).start();
}
如果我運行此代碼,它通常會完成工作並更新我的 UI。 我使用 Handler (android.os.Handler) 找到了這個解決方案,但是如果我在沒有或使用 Handler (評論版本) 的情況下運行它,它的工作原理是一樣的。
雖然沒有處理函數SuccessResponse
在 UI 線程中運行?
謝謝
雖然沒有處理函數 SuccessResponse 在 UI 線程中運行?
是的,因為response
是從 UI 線程作為參數傳遞給downloadIfNewOrEmpty
的DownloadResponse
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.