簡體   English   中英

Android - 在主線程中運行響應調用

[英]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 線程作為參數傳遞給downloadIfNewOrEmptyDownloadResponse實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM