public class MainActivity extends AppCompatActivity {
//Handler在哪个线程new,就默认拥有哪个线程的Looper对象和消息队列
//主线程的Looper.prepare()和Looper.loop()在主线程创建的时候就默认调用了
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
//初始化线程looper对象,包括初始化looper的MessageQueue
Looper.prepare();
//new Handler,此时会将looper中的MessageQueue塞给Handler
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Toast.makeText(MainActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
};
//不断循环监听是否有新消息入队,有就调用msg.target(Handler)的dispatchMessage()回调到handleMessage()
Looper.loop();
}
}).start();
Message message = mHandler.obtainMessage();
message.what = 100;
//将消息入队
mHandler.sendMessage(message);
}
}
Handler异步消息机制关键步骤
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android异步消息机制-深入理解Handler、Looper和MessageQueue之间的关系 相信做安卓的...
- Handler、Looper、MessageQueue 初始化 1.在 UI 线程创建 Handler,通常直接n...
- Android消息机制 android消息机制的核心类: Looper Handler MessageQueue-...
- 一、引言 Android开发中总是免不了处理一些耗时的操作,如网络请求、IO文件读写等等,都需要用子线程来处理,耗...