亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android中切換到主線程執(zhí)行的方法

 更新時間:2021年03月01日 08:29:59   作者:lebronzhen  
這篇文章主要介紹了Android中切換到主線程執(zhí)行的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

方法一: view.post(Runnable runnable)

使用 view 對象,調(diào)用 post 方法即可在主線程中執(zhí)行里邊的代碼,postDelayed 是延時執(zhí)行,也可以達(dá)到相同的效果。例如:

textView.post(new Runnable() {
   @Override
   public void run() {
     textView.setText("更新textView");
   }
});

方法二:runOnUiThread(Runnable runnable)

在 Acitivity 中直接調(diào)用 runOnUiThread 或者將 Activity 的 context 對象傳入子線程調(diào)用。例如:

runOnUiThread(new Runnable() {
  public void run() {
    textView.setText("更新textView");
  }
}

方法三:handler.post(Runnable runnable)

如果是在主線程可以直接 new 一個 Handler 對象,如果是在子線程需要獲取主線程的 Looper 和 Queue

// 主線程
Handler handler = new Handler();
// 子線程
Handler handler = new Handler(Looper.getMainLooper());

然后調(diào)用 post 方法,或者 postAtTime、postAtDelayed 即可。例如:

handler.post(new Runnable() {
   @Override
   public void run() {
      textView.setText("更新textView");
   }
});

方法四:handler.sendMessage(Message message)

這個是比較常用的方法通過 sendMessage 發(fā)送消息,然后在 handleMessage 中進(jìn)行處理。例如:

Handler handler = new Handler() {
   @Override
   public void handleMessage(Message msg) {
     super.handleMessage(msg);
     // 處理消息
     textView.setText("更新textView" + msg);
     switch(msg.what) {
        case 0:
           // 處理指定消息
           break;
     }
   }
};
handler.sendEmptyMessage(0);

方法五:使用 AsynTask

AsyncTask asyncTask = new AsyncTask() {
   @Override
   protected Object doInBackground(Object[] objects) {
     return null;
   }

   @Override
   protected void onPostExecute(Object o) {
     super.onPostExecute(o);
   }
};

doInBackground 方法執(zhí)行是在子線程中,其返回結(jié)果會傳遞到 onPostExecute 方法中,onPostExecute 就是運行在主線程。

以上就是幾種常用的切換到主線程執(zhí)行的方法,更多相關(guān)Android切換到主線程執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論