android 中的HandlerThread包含了android中的消息处理机制必须的looper,当你启动这个线程的时候,就会闯进looper,并开启消息处理的循环。

跟其它线程一样,HandlerThread是可不可以直接stop掉的,不过经过本人测试,你可以调用:getLooper().quit();来退出这个线程,其实原理很简单,就是改变在消息循环里面标志位,退出整个while循环,使线程执行完毕。

部分 测试代码如下:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.main);tv_name = (TextView) findViewById(R.id.tv_name);btn_name = (Button) findViewById(R.id.btn_name);Log.i(TAG, "==================main thread:" + Thread.currentThread().getName());final HandlerThread thread = new HandlerThread("handlerThread");thread.start();final MyHandler handler = new MyHandler(thread.getLooper());btn_name.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {handler.sendEmptyMessage(1);try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}thread.getLooper().quit();}});}class MyHandler extends Handler {public MyHandler(Looper looper) {super(looper);}@Overridepublic void handleMessage(Message msg) {Log.i(TAG, "==================" + Thread.currentThread().getName());//tv_name.setText("hello, this is the first message from handler");super.handleMessage(msg);}}

不过要注意:要想更新界面内容,还是需要使用界面的Looper,不然的话还是会抛错误,还是那句话,所有跟改变界关的操作,都得通过界面的Looper来执行

更多相关文章

  1. 讨论会3:Android用户研究及4.0界面设计分析
  2. Android对弹出输入法界面影响app界面布局
  3. android零碎要点---android开发者的福音,59_1 Android的界面设计
  4. 学习 Android Handler 消息机制需要注意这些问题!
  5. Android 将APK文件安装到AVD中并分析其界面结构
  6. android用户界面之WebView教程实例汇总
  7. Android界面布局(Layout)和菜单(Menu)
  8. Android消息机制分析
  9. 系出名门Android(10) - HTTP 通信, XML 解析, 通过 Hander 实现

随机推荐

  1. Android Bitmap内存限制
  2. Google I/O大会发布Android Studio,安装与
  3. Android实现底部半透明弹出框PopUpWindow
  4. Mac OS下配置 ADB环境变量
  5. 屏幕锁知识点
  6. Android网易有道词典案例源码分享
  7. Android --- MediaPlayer的使用详解
  8. android的自动更新
  9. Android中的SQLiteOpenHelper类
  10. android按钮事件触发拨号器