package com.android.HandleMessage;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.MessageQueue;
import android.util.Log;
public class HandleMessageActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Thread threadA = new Thread() {
@Override
public void run() {
Looper.prepare();
Looper.myQueue().addIdleHandler(new threadAIdler());
Handler handlerA = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
Log.i("threadA", this.getLooper().myLooper().myQueue().toString());
Log.i("threadA", "ThreadA reveived a message0000000000!");
Log.i("threadA", Looper.myLooper().getThread().getName());
break;
case 1:
Log.i("threadA", "ThreadA reveived a message1111111111!");
break;
default:
break;
}
}
};
Message msg = Message.obtain();
msg.what = 0;
handlerA.sendMessage(msg);
msg = Message.obtain();
msg.what = 1;
handlerA.sendMessage(msg);
Looper.loop();
};
threadA.start();
private class threadAIdler implements MessageQueue.IdleHandler {
@Override
public boolean queueIdle() {
Log.i("threadA", "ThreadA Idler run");
return false;
}
}
}testetsetsetestsets
最新推荐文章于 2019-04-30 14:22:12 发布
本文介绍了一个自定义的Android应用程序,该程序通过创建一个新的线程并使用Handler机制来发送和接收消息。文章展示了如何在一个单独的线程中初始化Looper,并通过Handler发送不同类型的Message,同时还演示了如何使用IdleHandler进行空闲处理。
566

被折叠的 条评论
为什么被折叠?



