Android(安卓)消息处理机制: Handler 中 sendMessage()方法的几种重载方法
16lz
2021-01-26
- 使用Handler中的sendEmptyMessage(int what)方式来发送消息.
点击按钮发送消息,在Handler中做消息的处理。只发送一个带有what属性的消息。
case R.id.button1: new Thread(new Runnable() { // 查看Handler的api,它有几种sendMessage()的方式 @Override public void run() { // 使用public final boolean sendEmptyMessage (int what) mHandler.sendEmptyMessage(3); } }).start(); break;
2.使用Handler中的sendEmptyMessageAtTime(int what,long uptimeMillis)方式来发送消息.
case R.id.button1: new Thread(new Runnable() { // 查看Handler的api,它有几种sendMessage()的方式 @Override public void run() { // 使用public final boolean sendEmptyMessageAtTime (int what, long uptimeMillis) mHandler.sendEmptyMessageAtTime(3, 1000); } }).start(); break;
3.使用Handler中的sendEmptyMessageDelayed (int what, long delayMillis)方式来发送消息.
case R.id.button1: new Thread(new Runnable() { @Override public void run() { /* * 使用public final boolean sendEmptyMessageDelayed (int what, long delayMillis) * 发送带有what属性值的消息,在延时3秒钟后发送 */ mHandler.sendEmptyMessageDelayed(3, 3000); } }).start(); break;
4.使用Handler中的sendMessage (Message msg)方式来发送消息.
case R.id.button1: new Thread(new Runnable() { // 查看Handler的api,它有几种sendMessage()的方式 @Override public void run() { /* * 使用public final boolean sendMessage (Message msg) */ // 使用Message.obtain()获取message对象 // Message msg = Message.obtain(); // 使用Handler获取message对象,两种获取都可以 Message msg = mHandler.obtainMessage(); msg.arg1 = 1; msg.what = 3; msg.obj = "AHuier"; mHandler.sendMessage(msg); } }).start(); break;
结合上面分析的内容,我们可以知道android 中发送消息不管是Message中的几种重载的obtain()方式,还是Handler中的几种重载的sendMessage最终都是通过Handler.sendMessage来发送的,而Handler中的几种sendMessage()重载方法最终都会调用到sendMessageAtTime()方法来完成消息的入队操作。
转载地址:http://blog.csdn.net/ahuier/article/details/17013647
更多相关文章
- Android点击事件的四种实现方式
- Android使用HttpPost向服务器发送Json数据
- Android(安卓)使用SharedPreferrences储存密码登录界面记住密码
- Android(安卓)永久保存数据
- Android通过queryIntentActivities自定义发送功能
- android横竖屏切换不重启activity解决方案
- Android(安卓)Fragment与activity交互方式
- 【Android(安卓)UI设计】之自定义计时器
- [Android]Ams 广播发送原理(三)