android之HandlerThread类的实现
16lz
2021-01-23
package com.ghg.HandlerThread;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import android.os.Looper;import android.os.Message;/** * 在主线程main中创建handler对象,创建消息,并用handler向工作线程发送消息,在工作线程中处理消息; * 应用环境:比如下载; * @author gaohong * */public class Day1304_HandlerThreadActivity extends Activity {HandlerThread thread; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //创建工作线程并启动(工作线程带消息队列) thread=new HandlerThread("workThread"); thread.start(); Looper looper=thread.getLooper(); //创建Handler对象并与工作线程的消息队列关联 Handler handler=new Handler(looper){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub System.out.println("在"+Thread.currentThread().getName()+"中处理消息"); System.out.println("msg.obj="+msg.obj); } }; //创建Message对象 Message msg=Message.obtain(); msg.obj="在"+Thread.currentThread().getName()+"线程中发送消息"; handler.sendMessage(msg); } @Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();thread.quit();}}上面类是HandlerThread类的精简版,模仿HandlerThread类的实现,关键是为了理解HandlerThread类的工作原理;
更多相关文章
- android 线程之创建一个子线程,并在UI线程中进行交互
- Android studio 多线程网络文件下载
- Android 子线程 更新 UI 界面 总结
- Android非UI线程访问UI线程的方法总结
- FregServer进程,发送BC_TRANSACTION,唤醒ServiceManager进程,返回BR
- 在非主线程中不能操作主线程中的View
- Android notification点击跳转到Activity,点击返回跳转,前一条消息
- Android消息机制入门一
- Android - 多线程 - AsyncTask