Android(安卓)HandlerThread
16lz
2021-12-04
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
更多相关文章
- xbmc for android 编译
- Android(安卓)flutter Json转Dart Model类
- Android(安卓)studio Dialog 弹出式对话框
- Android(安卓)简单图形绘制
- android 访问SQLite
- android中使用iconfont
- Android运行报错:Error: Static interface methods are only supp
- 个人练习:ListView绑定数据和显示的几种方式
- Android(安卓)TabWidget/TabHost的使用