looper prepareandroid消息处理机制的问题 高手来解析一下

looper prepare  时间:2022-02-24  阅读:()

handler使用在哪些场景

一、 应用场景一 1. 说明 某些不需要实时显示的,可以先放到消息队列中(例如弹出提示信息,更新UI等) 2. 示例代码 [java] view plain copy print? // handler类接收数据 Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == MOBILE_STATUS || msg.what == WIFI_STATUS) { showNetMethod(msg.what); System.out.println("receive...."); } }; }; Message msg = new Message(); msg.what = WIFI_STATUS; handler.sendMessage(msg); // handler类接收数据 Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == MOBILE_STATUS || msg.what == WIFI_STATUS) { showNetMethod(msg.what); System.out.println("receive...."); } }; }; Message msg = new Message(); msg.what = WIFI_STATUS; handler.sendMessage(msg); 二、 应用场景二 1. 说明 在一个子线程中去创建一个Handler,然后使用这个handler实例在任何其他线程中发送消息,最终处理消息的代码都会在你创建Handler实例的线程中运行 2. 代码示例 [java] view plain copy print? new Thread() { private Handler handler; public void run() { Looper.prepare(); handler = new Handler() { public void handleMessage(android.os.Message msg) { Log.e("TAG",Thread.currentThread().getName()); }; }; Looper.loop(); } } new Thread() { private Handler handler; public void run() { Looper.prepare(); handler = new Handler() { public void handleMessage(android.os.Message msg) { Log.e("TAG",Thread.currentThread().getName()); }; }; Looper.loop(); } } 三、应用场景三 1. 说明: 定时器 2. 示例代码 [java] view plain copy print? private static final int LOAD_DISPLAY_TIME = 3000; // 延迟3s new Handler().postDelayed(new Runnable() { public void run() { // 时间到时,执行的代码 } }, LOAD_DISPLAY_TIME); 关闭此定时器:handler.removeCallbacks(runnable);

android消息处理机制的问题 高手来解析一下

下面和大家分享一下android中非常重要的消息处理机制,说到消息处理,Message,MessageQueue,Looper,Handler这四个类的作用是我们必须要明白的。 下面分别谈谈他们的作用: MessageQueue MessageQueue表示消息队列,存放消息的地方,按照“先进先出”的规则执行,每一个线程只可以拥有一个MessageQueue。当创建Looper对象的时候会创建一个MessageQueue对象。 Message Message表示消息对象,MessageQueue中存放的对象,一个MessageQueue中可以存放多个Message对象。通过调用Message类的obtain()方法或者调用Handler类的obtainMessage()方法获取Message对象,但是这样并不一定会创建一个新的Message对象,如果消息池中有可用的Message对象则直接取出返回这个对象,否则如果消息池中没有可用的Message对象,则会创建一个新的Message对象。当消息队列中的Message对象被系统处理完之后,该Message对象会从MessageQueue中删除,然后放入消息池中。 Looper Looper是用来操作MessageQueue的,每一个Looper对应一个MessageQueue,可以通过调用Looper.myLooper()方法获取当前线程的Looper对象,Looper循环从MessageQueue中取出Message对象,交给Handler调用handleMessage方法进行处理,处理完之后Message对象被放入消息池中。 Handler Handler是消息的处理者,Handler将需要传递的信息封装成Message对象,然后调用sendMessage方法将Message放入MessageQueue中,当MessageQueue循环到该Message时,调用相应Handler对象的handleMessage方法对其进行处理。 /developer/

注意在UI线程也就是主线程中默认会创建Looper对象和MessageQueue对象,如果在我们自己新开的线程中要进行消息处理,必须创建Looper对象和MessageQueue对象,通过调用Looper.prepare()方法可以创建Looper对象和MessageQueue对象,调用Looper.loop()方法可以启动消息循环队列。 这里 /developer/thread-25343-1-1.html还有个例子,你可以参照一下,求给分啊!!!

丽萨主机122元/每季,原生IP,CN2 GIA网络

萨主机(lisahost)新上了美国cn2 gia国际精品网络 – 精品线路,支持解锁美区Netflix所有资源,HULU, DISNEY, StartZ, HBO MAX,ESPN, Amazon Prime Video等,同时支持Tiktok。套餐原价基础上加价20元可更换23段美国原生ip。支持Tiktok。成功下单后,在线充值相应差价,提交工单更换美国原生IP。!!!注意是加价20换原生I...

星梦云60元夏日促销,四川100G高防4H4G10M,西南高防月付特价

星梦云怎么样?星梦云好不好,资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器 。官方网站:点击访问星梦云官网活动方案:1、成都电信年中活动机(封锁UDP,不可解封):机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50...

BuyVM商家4个机房的官方测试IP地址和测速文件

BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...

looper prepare为你推荐
weakhashmapWeakHashMap和HashMap的区别郭凡生馬云的簡介3QjqlJQL JINQILIN注册过商标吗?还有哪些分类可以注册?调度系统生产调度系统radius认证如何写一个C#的Radius认证客户端smartupload使用SmartUpload实现文件上传时需要对表单设置哪些属性欢迎页面怎样在开机制造欢迎页面?弹幕播放器看过的剧有一个弹幕出来的是什么播放器layoutsubviews如何修改TableViewCell中的ImageView的Frame和大小booth算法利用补码booth计算【xy】补,其中x=0.1110,y=-0.1101
asp虚拟主机 域名论坛 smartvps 免费申请网页 12306抢票助手 搜狗12306抢票助手 私有云存储 qingyun 视频服务器是什么 成都主机托管 privatetracker winserver2008r2 美国达拉斯 在线tracert 跟踪路由 neicun 远程主机强迫关闭了一个现有的连接 堡垒主机 xendesktop 万网空间价格 更多