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

A400互联37.8元/季,香港节点cn2,cmi线路云服务器,1核/1G/10M/300G

A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...

#消息# contabo:德国老牌机房新增美国“纽约、西雅图”数据中心,免设置费

运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...

gcorelabs远东khabarovsk伯力Cloud云服务器测评,告诉你gcorelabs云服务器怎么样

说明一下:gcorelabs的俄罗斯远东机房“伯力”既有“Virtual servers”也有“CLOUD SERVICES”,前者是VPS,后者是云服务器,不是一回事;由于平日大家习惯把VPS和云服务器当做一回事儿,所以这里要特别说明一下。本次测评的是gcorelabs的cloud,也就是云服务器。 官方网站:https://gcorelabs.com 支持:数字加密货币、信用卡、PayPal...

looper prepare为你推荐
有道云笔记网页版有道云笔记的桌面版不能像网页版那样直接存储网页剪报内容的吧?那不就桌面版和网页版的功能很不同?akf德州水份检测仪价格,AKF系列卡尔费休水份测定仪和世界顶级进口品牌相比怎么样?rdlregardless是什么意思rdlcordless phone是什么意思slideshare什么是slide sandaltvosTVOS智能电视操作系统如何越狱vipjrvipjr怎么样?有真实体验的来说一下radius认证电信或网通的RADIUS认证都记录些什么?谁能说说ISP的宽带帐号检查流程色库photoshop7.0怎么改PANTONE色号弹幕网站视频弹幕网站推荐
手机域名注册 香港服务器租用99idc 香港vps主机 godaddy主机 163网 免备案cdn 空间打开慢 gateone godaddy域名优惠码 鲜果阅读 阿里校园 tna官网 安徽双线服务器 360云服务 cloudlink 创建邮箱 yundun 美国凤凰城 数据库空间 美国迈阿密 更多