簡體   English   中英

即使在使用工作線程時,Android也可以在UI線程上運行

[英]Android running on UI thread even when using worker thread

我使用的是工作線程,如此處所述但代碼仍然阻止UI。 如果我在run()方法的開頭睡覺,它不會阻塞UI。 事實是,這是一個繁重的代碼,它從onCreate方法運行,但是無論我做什么,我都不能使它不阻塞UI。 我究竟做錯了什么?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < 1000000; i++) {
                Log.d("asdf", "asdf");
            }
        }
    }).start();
}

您沒有使用AsyncTask-Android用來在UI線程之外執行長時間運行的進程的控件。

最重要的是,使用它,您將獲得更大的成功。

Android AsyncTask示例

使用Handler.runOnUiThread(runnable)來調用您的UI線程。 您也可以在沒有Runnable的情況下執行線程,如下所示:

new Thread(){
        @Override
        public void run() {
            for (int i = 0; i < 1000000; i++) {
                Log.d("asdf", "asdf");
            }
        }
    }).start();

暫無
暫無

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

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