Android中切換到主線程執(zhí)行的方法
方法一: view.post(Runnable runnable)
使用 view 對(duì)象,調(diào)用 post 方法即可在主線程中執(zhí)行里邊的代碼,postDelayed 是延時(shí)執(zhí)行,也可以達(dá)到相同的效果。例如:
textView.post(new Runnable() {
@Override
public void run() {
textView.setText("更新textView");
}
});
方法二:runOnUiThread(Runnable runnable)
在 Acitivity 中直接調(diào)用 runOnUiThread 或者將 Activity 的 context 對(duì)象傳入子線程調(diào)用。例如:
runOnUiThread(new Runnable() {
public void run() {
textView.setText("更新textView");
}
}
方法三:handler.post(Runnable runnable)
如果是在主線程可以直接 new 一個(gè) Handler 對(duì)象,如果是在子線程需要獲取主線程的 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)
這個(gè)是比較常用的方法通過 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é)果會(huì)傳遞到 onPostExecute 方法中,onPostExecute 就是運(yùn)行在主線程。
以上就是幾種常用的切換到主線程執(zhí)行的方法,更多相關(guān)Android切換到主線程執(zhí)行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android自定義實(shí)現(xiàn)一個(gè)車牌字母選擇鍵盤
這篇文章主要為大家詳細(xì)介紹了Android如何自定義實(shí)現(xiàn)一個(gè)車牌字母選擇鍵盤,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
Android使用緩存機(jī)制實(shí)現(xiàn)文件下載及異步請(qǐng)求圖片加三級(jí)緩存
這篇文章主要介紹了Android使用緩存機(jī)制實(shí)現(xiàn)文件下載及異步請(qǐng)求圖片加三級(jí)緩存的相關(guān)資料,需要的朋友可以參考下2016-02-02
android Socket實(shí)現(xiàn)簡單聊天小程序
這篇文章主要為大家詳細(xì)介紹了android Socket實(shí)現(xiàn)簡單聊天小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
android 添加按(power鍵)電源鍵結(jié)束通話(掛斷電話)
首先我們發(fā)現(xiàn)現(xiàn)在我們所用的android智能手機(jī)大部分都有當(dāng)你在打電話時(shí)按power鍵來掛斷電話,一般都是在設(shè)置中2013-01-01
Android onSaveInstanceState和onRestoreInstanceState觸發(fā)的時(shí)機(jī)
這篇文章主要介紹了Android onSaveInstanceState和onRestoreInstanceState觸發(fā)的時(shí)機(jī)的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android實(shí)現(xiàn)在子線程中更新Activity中UI的方法
這篇文章主要介紹了Android實(shí)現(xiàn)在子線程中更新Activity中UI的方法,涉及Android線程與activity操作的相關(guān)技巧,需要的朋友可以參考下2016-04-04
自己實(shí)現(xiàn)Android View布局流程
這篇文章主要介紹了自己實(shí)現(xiàn)Android View布局流程,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03

