1. 程式人生 > >Android如何在oncreate方法中執行耗時操作

Android如何在oncreate方法中執行耗時操作

最近在編寫程式碼時發現一個問題,在編寫了一個網路請求方法時,寫在oncreate的方法中時,往往會跳過請求,我又嘗試新建了一個button,在onclick方法中呼叫,卻發現又可以正確的執行該方法,那麼問題出在哪裡呢?

我查閱了相關資訊,在主執行緒中,我們不能執行耗時操作來更新UI,我們只能在子執行緒中進行耗時操作後再通過handler傳遞訊息來通知主執行緒進行UI操作來更新UI。

new Thread(new Runnable() {
    @Override
    public void run() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                //耗時操作,需要在子執行緒中完成操作後通知主執行緒實現UI更新
                //耗時操作
            }
        });
    }
}).start();

Ps:runOnUiThread只能夠在Activity中執行,使用fragment或其他非activity的頁面時,需要用handler來傳遞message實現。