HandlerThread使用
来源:互联网 发布:java wait例子 编辑:程序博客网 时间:2024/06/05 05:16
优点:
1.制作一个后台异步线程,需要的时候可以丢一个任务给它,使用灵活
2.可以避免项目中随处可见的new Thread().start(),增加系统开销
3.可以代替Thread+looper+handlerd的写法
缺点:
1.不要执行太耗时的任务(<= 100ms),如果太耗时可能会阻塞其他任务
(此种情况就用线程池吧:http://blog.csdn.net/android_xue/article/details/62896433)
2.要自己控制好合适的生命周期,启动和结束都要自己控制
public class HandlerThreadUtil { private static HandlerThread mHandlerThread; private static Looper mLooper; public static Handler initHandlerThread(String threadName) { mHandlerThread = new HandlerThread(threadName); //一定要手动开启 mHandlerThread.start(); //获取Looper mLooper = mHandlerThread.getLooper(); if (mLooper != null) { //返回当前线程的Handler return new Handler(mLooper); } return null; } //由于HandlerThread的run方法是一个无限循环, // 因此当明确不需要使用HandlerThread // 的时候,应该终止线程执行 public static void cancle() { mLooper.quit(); }}
public class MainActivity extends AppCompatActivity { public static final int TV = 0; private Handler mCallBackHandler; private TextView tv; private Handler mHanlder = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case TV: tv.setText("修改好了......"); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); //获取HandlerThread实例 mCallBackHandler = HandlerThreadUtil.initHandlerThread("firstThread"); //外界需要通过Handler的消息方式通知HandlerThread执行一个具体任务 mCallBackHandler.post(new myRunnable()); } class myRunnable implements Runnable { @Override public void run() { try { Thread.sleep(3000); Message message = Message.obtain(); message.what = TV; mHanlder.sendMessage(message); } catch (InterruptedException e) { e.printStackTrace(); } } } @Override protected void onDestroy() { super.onDestroy(); //手动结束线程 HandlerThreadUtil.cancle(); }}
阅读全文
1 0
- HandlerThread使用
- HandlerThread使用样例
- HandlerThread使用实例
- HandlerThread的使用
- HandlerThread使用样例
- HandlerThread的 使用
- HandlerThread初步使用
- HandlerThread的 使用
- HandlerThread的使用
- HandlerThread的具体使用
- HandlerThread的使用
- HandlerThread 的使用
- HandlerThread的使用
- HandlerThread 的使用
- Android HandlerThread 的使用
- Android HandlerThread使用总结
- HandlerThread的使用
- Android HandlerThread使用
- SimpleDateFormat的使用
- 练习25
- 练习26
- 练习27
- eclipse上搭建maven多模块Java Web项目
- HandlerThread使用
- CONTROL.c(参考匿名的)
- Kotlin 编程规范
- MSSQL交叉表查询
- 手机数据抓包以及wireshark技巧
- poj 1068
- 1005: 整数幂
- 练习28
- 集合框架