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

PQ.hosting全线9折,1Gbps带宽不限流量VPS/€3/月,全球11大机房可选

Hostadvice主机目录对我们的服务进行了测试,然后给PQ.hosting颁发了十大WordPress托管奖。为此,宣布PQ.Hosting将在一周内进行折扣优惠,购买和续订虚拟服务器使用优惠码:Hostadvice ,全部优惠10%。PQ.hosting,国外商家,成天于2019年,正规公司,是全球互联网注册商协会 RIPE 的成员。主要是因为提供1Gbps带宽、不限流量的基于KVM虚拟的V...

CYUN(29元/月)美国、香港、台湾、日本、韩国CN2,续费原价

关于CYUN商家在之前有介绍过一次,CYUN是香港蓝米数据有限公司旗下的云计算服务品牌,和蓝米云、蓝米主机等同属该公司。商家主要是为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。目前,CYUN主要运营美国、香港、台湾、日本、韩国CN2线路产品,包括云服务器、站群服务器和独立服务器等。这次看到CYUN夏季优惠活动发布了,依然是熟悉的...

BuyVM新设立的迈阿密机房速度怎么样?简单的测评速度性能

BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...

looper prepare为你推荐
在线课堂老师怎么在线授课?备忘录模式华为荣耀5X怎么在手机上新建一个备忘录jdk6java—JDK6,在SUN公司官网下载的链接,editplus破解版DBTools Manager Professional 破解版在哪里可以下载?ruby语言公司实习让我学习RUBY语言,不知道RUBY语言发展前景怎么样,值不值的去学习。ruby语言Ruby是 什么意思imqq官网中国v家官网网址layoutsubviews如何让NSSplitView的子View的大小固定相似图片搜索如何输入图片并且搜出最相似的图片?mediasRES代表什么意思
台湾虚拟主机 百度域名 域名转让网 踢楼 便宜域名 diahosting 好看的桌面背景图片 debian源 免费网络电视 国外在线代理 e蜗 qingyun admit的用法 网游服务器 国外视频网站有哪些 服务器是干什么用的 789 沈阳主机托管 湖南idc lamp的音标 更多