HandlerThread实现多线程操作_个人学习小结
2013-04-28 11:52
435 查看
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("Activity------>"+Thread.currentThread().getId()); //创建HandlerThread实例 此类实现了使用Looper来处理消息的功能 HandlerThread ht=new HandlerThread("handler_Thread"); ht.start(); //通过ht.getLooper()得到HandlerThread的looper对象 myhandler myhand=new myhandler(ht.getLooper()); //创建一个Message实例 通过myhand类 Message msg=myhand.obtainMessage(); //发出消息 给创建的这个myhand msg.sendToTarget(); //myhand.sendMessage(msg); } class myhandler extends Handler{ public myhandler(){ } //调用父类的构造函数接受looper作为参数 public myhandler(Looper looper){ super(looper); } //接受到消息后执行handlerMessage @Override public void handleMessage(Message msg){ System.out.println("asd"); System.out.println(Thread.currentThread().getId()); } }
这样 handleMessage()方法中的内容就不会在主线程中运行
通过调用HandlerThread就可以让一些耗时的操作能够在另外一个线程中执行 从而不会影响Activity中的操作 使得应用程序不会出现卡死等情况
特别注意的是handleMessage()方法必须是继承自父类(即@override) 如果是自己写的 则不会接收到消息
相关文章推荐
- Android 中 Runnable 和Thread 实现多线程操作的小结
- [深入学习C#]C#实现多线程的方法:线程(Thread类)和线程池(ThreadPool)
- Android开发学习笔记(8):浅谈Handler实现多线程和异步处理
- Android多线程编程之HandlerThread学习篇(四)
- 【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程
- 【Java多线程学习】Java多线程的两种实现方式:继承Thread类 & 实现Runable接口
- 学习通过Thread+Handler实现非UI线程更新UI组件
- Thinking in Java学习笔记 Thread.UncaughtExceptionHandler接口实现捕获线程内异常
- 学习通过Thread+Handler实现非UI线程更新UI组件(转)
- 个人学习笔记---linux原子操作的实现原理
- [深入学习C#]C#实现多线程的方法:线程(Thread类)和线程池(ThreadPool)
- android学习之Handler实现异步与多线程
- Android 里面的多线程操作备忘,关于Thread,Handler, Looper
- Android 学习 之 Looper Handler Thread Messahe 多线程
- Java 多线程:InheritableThreadLocal 实现原理
- 【个人学习之路】PHP和MySQL实现上传图书信息
- iOS学习笔记-119.多线程18——NSOperationQueue自定义NSOperation执行一个操作的取消
- 个人安卓学习笔记---Android模拟打电话程序实现
- qt学习之个人画板的实现(2)