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è)是比較常用的方法通過(guò) 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)文章
使用PlatformView將?Android?控件view制作成Flutter插件
這篇文章主要為大家介紹了使用PlatformView將?Android?控件view制作成Flutter插件實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
android 捕獲系統(tǒng)異常并上傳日志具體實(shí)現(xiàn)
這篇文章介紹了android 捕獲系統(tǒng)異常并上傳日志具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-09-09
30條android項(xiàng)目開(kāi)發(fā)技巧與經(jīng)驗(yàn)總結(jié)
本文為大家總結(jié)了30條android項(xiàng)目開(kāi)發(fā)技巧與經(jīng)驗(yàn),,需要的朋友可以參考下2018-04-04
linphone-sdk-android版本號(hào)生成解析
這篇文章主要為大家介紹了linphone-sdk-android版本號(hào)生成解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Android ScrollView嵌套ExpandableListView顯示不正常的問(wèn)題的解決辦法
這篇文章主要介紹了Android ScrollView嵌套ExpandableListView顯示不正常的問(wèn)題的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02
android中打開(kāi)相機(jī)、打開(kāi)相冊(cè)進(jìn)行圖片的獲取示例
本篇文章主要介紹了android中打開(kāi)相機(jī)、打開(kāi)相冊(cè)進(jìn)行圖片的獲取示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-01-01
Android 開(kāi)機(jī)應(yīng)用掃描相關(guān)總結(jié)
本篇文章只是作為指南引導(dǎo)去看PkMS,不會(huì)貼大段代碼進(jìn)行分析,更多是基于方法分析實(shí)現(xiàn)的邏輯,另外就是代碼是基于Android 11,與Android 10之前代碼有比較大的差別。2021-05-05

