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