国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android HandlerThread使用方法詳解

2019-10-22 18:25:00
字體:
來源:轉載
供稿:網友

Android HandlerThread使用方法詳解

HandlerThread 繼承自Thread,內部封裝了Looper。

首先Handler和HandlerThread的主要區別是:Handler與Activity在同一個線程中,HandlerThread與Activity不在同一個線程,而是別外新的線程中(Handler中不能做耗時的操作)。

用法:

import android.app.Activity;  import android.os.Bundle;  import android.os.Handler;  import android.os.Handler.Callback;  import android.os.HandlerThread;  import android.os.Message;      public class MainActivity extends Activity {    HandlerThread handlerThread = new HandlerThread("test");    Handler handler;        @Override    protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);      System.out.println("cur_id="+Thread.currentThread().getId());            handlerThread.start();      System.out.println("handlerThread.id=" + handlerThread.getId());      //post(runnable),只是直接運行了run(),run()內ThreadId與UIThread是一樣的  //   handler = new Handler();       //post(runnable),將runnable運行在handlerThread中,這是非UIThread的      handler = new Handler(handlerThread.getLooper(), new Callback() {                @Override        public boolean handleMessage(Message msg) {          System.out.println("receive message.whatA=" + msg.what);          if (msg.what == 1) {            return true;//不再向外層傳遞          } else {            return false; //外層的handleMessage() 繼續執行          }                  }      }) {        @Override        public void handleMessage(Message msg) {          // TODO Auto-generated method stub          super.handleMessage(msg);          System.out.println("receive message.whatB=" + msg.what);        }      };      handler.post(new Runnable() {                @Override        public void run() {          System.out.println("handler_post_cur_id="+Thread.currentThread().getId());          handler.sendEmptyMessage(1);          handler.sendEmptyMessage(2);        }      });          }    }  

運行結果:

01-23 07:12:31.590: I/System.out(12386): cur_id=1  01-23 07:12:31.590: I/System.out(12386): handlerThread.id=1866  01-23 07:12:31.590: I/System.out(12386): handler_post_cur_id=1866  01-23 07:12:31.600: I/System.out(12386): receive message.whatA=1  01-23 07:12:31.600: I/System.out(12386): receive message.whatA=2  01-23 07:12:31.600: I/System.out(12386): receive message.whatB=2  

如有疑問請留言或到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤台县| 吐鲁番市| 台北县| 卢氏县| 大连市| 泽普县| 连州市| 宜阳县| 绥阳县| 云林县| 简阳市| 慈溪市| 靖江市| 东光县| 包头市| 长宁区| 贵南县| 玉溪市| 来凤县| 滨海县| 安康市| 璧山县| 静海县| 东莞市| 纳雍县| 阿坝县| 延边| 临江市| 阜阳市| 舞阳县| 新泰市| 加查县| 左贡县| 乌兰县| 黄石市| 沁源县| 衡东县| 桂东县| 达拉特旗| 会理县| 宕昌县|