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还有个例子,你可以参照一下,求给分啊!!!

Gigsgigscloud($9.8)联通用户优选日本软银VPS

gigsgigsCloud日本东京软银VPS的大带宽配置有100Mbps、150Mbps和200Mbps三种,三网都走软银直连,售价最低9.8美元/月、年付98美元。gigsgigscloud带宽较大延迟低,联通用户的好选择!Gigsgigscloud 日本软银(BBTEC, SoftBank)线路,在速度/延迟/价格方面,是目前联通用户海外VPS的最佳选择,与美国VPS想比,日本软银VPS延迟更...

享有云:美国BGP云服务器低至20元/月起,首月打折;香港2核2G2M仅50元/月起

享有云怎么样?享有云是一家新的国内云服务器商家,目前提供国内、香港及海外地区的云服务器,拥有多线路如:BGP线路、CN2线路、高防等云服务器,并且提供稳定、安全、弹性、高性能的云端计算服务,实时满足您的多样性业务需求。目前,美国bgp云服务器,5M带宽,低至20元/月起,270元/年起,首月打折;香港2核2G2M仅50元/月起,450元/年起!点击进入:享有云官方网站地址享有云优惠活动:一、美国B...

HostNamaste$24 /年,美国独立日VPS优惠/1核1G/30GB/1Gbps不限流量/可选达拉斯和纽约机房/免费Windows系统/

HostNamaste是一家成立于2016年3月的印度IDC商家,目前有美国洛杉矶、达拉斯、杰克逊维尔、法国鲁贝、俄罗斯莫斯科、印度孟买、加拿大魁北克机房。其中洛杉矶是Quadranet也就是我们常说的QN机房(也有CC机房,可发工单让客服改机房);达拉斯是ColoCrossing也就是我们常说的CC机房;杰克逊维尔和法国鲁贝是OVH的高防机房。采用主流的OpenVZ和KVM架构,支持ipv6,免...

looper prepare为你推荐
measureweigh和measure的区别??抓包什么是"抓包"?怎样"抓包"?科来网络分析系统科来网络分析系统 6.0 专家版 (演示)的功能开票系统怎样开普通发票系统附清单md5值md5值什么用bindservice安卓里 remote service到底有什么用editplus破解版cool edit pro 2.1汉化破解版数秦科技浙江数链科技有限公司怎么样?民生电商陆金所、民生电商哪个更适合投资?弹幕播放器弹弹play播放器怎么样
万网域名 日本vps 优惠码 iisphpmysql 云图标 php空间申请 免费吧 1g空间 万网空间购买 国外视频网站有哪些 宏讯 空间登入 netvigator 阿里云邮箱怎么注册 贵州电信 九零网络 restart web是什么意思 机柜尺寸 godaddy域名 更多