HandlerThread 继承自Thread,内部封装了Looper

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;@Overrideprotected 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() {@Overridepublic boolean handleMessage(Message msg) {System.out.println("receive message.whatA=" + msg.what);if (msg.what == 1) {return true;//不再向外层传递} else {return false; //外层的handleMessage() 继续执行}}}) {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);System.out.println("receive message.whatB=" + msg.what);}};handler.post(new Runnable() {@Overridepublic 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=101-23 07:12:31.590: I/System.out(12386): handlerThread.id=186601-23 07:12:31.590: I/System.out(12386): handler_post_cur_id=186601-23 07:12:31.600: I/System.out(12386): receive message.whatA=101-23 07:12:31.600: I/System.out(12386): receive message.whatA=201-23 07:12:31.600: I/System.out(12386): receive message.whatB=2



更多相关文章

  1. xbmc for android 编译
  2. Android(安卓)flutter Json转Dart Model类
  3. Android(安卓)studio Dialog 弹出式对话框
  4. Android(安卓)简单图形绘制
  5. android 访问SQLite
  6. android中使用iconfont
  7. Android运行报错:Error: Static interface methods are only supp
  8. 个人练习:ListView绑定数据和显示的几种方式
  9. Android(安卓)TabWidget/TabHost的使用

随机推荐

  1. Android(安卓)实现自适应正方形GridView
  2. Android命令行下运行JAVA程序之StatusBar
  3. Android(安卓)v4、v7、v13 的区别
  4. Android(安卓)adb forward转发TCP端口连
  5. 谈谈关于Android视频编码的那些坑
  6. Unity5与Android交互通信(使用Android(安
  7. Android简介
  8. Android(安卓)资源(resource)学习小结
  9. android sqlite 数据类型
  10. Android系统上部署usb打印机