Android中切換到主線程執(zhí)行的方法
方法一: view.post(Runnable runnable)
使用 view 對象,調(diào)用 post 方法即可在主線程中執(zhí)行里邊的代碼,postDelayed 是延時執(zhí)行,也可以達到相同的效果。例如:
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 中進行處理。例如:
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)文章
Android使用緩存機制實現(xiàn)文件下載及異步請求圖片加三級緩存
這篇文章主要介紹了Android使用緩存機制實現(xiàn)文件下載及異步請求圖片加三級緩存的相關(guān)資料,需要的朋友可以參考下2016-02-02
android 添加按(power鍵)電源鍵結(jié)束通話(掛斷電話)
首先我們發(fā)現(xiàn)現(xiàn)在我們所用的android智能手機大部分都有當你在打電話時按power鍵來掛斷電話,一般都是在設置中2013-01-01
Android onSaveInstanceState和onRestoreInstanceState觸發(fā)的時機
這篇文章主要介紹了Android onSaveInstanceState和onRestoreInstanceState觸發(fā)的時機的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android實現(xiàn)在子線程中更新Activity中UI的方法
這篇文章主要介紹了Android實現(xiàn)在子線程中更新Activity中UI的方法,涉及Android線程與activity操作的相關(guān)技巧,需要的朋友可以參考下2016-04-04

