Android中消息机制初探(创建一个可以接收消息的子线程)
来源:互联网 发布:粑粑是什么网络意思 编辑:程序博客网 时间:2023/09/30 05:30
Android开发者都应该知道的是为了提高用户体验,必须将耗时的操作放在子线程中处理,处理完毕之后发送消息给主线程,刷新UI界面。
那么子线程如何接收消息呢?
这里使用到Looper对象
/** * 需要用到调用消息队列的方法 * prepare(); 为线程初始化消息队列 * myLooper(); 获取loop对象的引用 * loop(); Looper.loop()调用是让线程消息队列开始运行,可以接受消息 * quit(); 退出消息队列,若线程没有其他操作也会随着消息队列的退出而退出 */```loop的API少且简单。现在开始来创建一个用于处理耗时作业的子线程<div class="se-preview-section-delimiter"></div>
这里写代码片
“`
public class SonThread extends Thread{ private static final String threadTag="WORKING_THREAD"; private Handler sonThreadHandler; private Looper sonThreadLooper; @Override public void run() { super.run(); Looper.prepare(); sonThreadLooper = Looper.myLooper(); sonThreadHandler = new Handler(sonThreadLooper){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==1){ Log.e("主线程的消息===>", (String) msg.obj); } } }; Looper.loop(); } //主线程给子线程发送消息 public void sendToSonThread(String message){ if (sonThreadHandler!=null){ Message msg = Message.obtain(); msg.what=1; msg.obj = message; sonThreadHandler.sendMessage(msg); } } public void exit(){ //关闭线程 if (sonThreadLooper!=null){ sonThreadLooper.quit(); } }}
代码通俗易懂,在子线程中创建消息循环,且创建一个用于操作消息队列中消息的Handler对象。既从消息队列取消息,也用于主线程主动向子线程发送消息。来看看主线程如何发送消息 son.sendToSonThread("享受技术,享受生活!");
0 0
- Android中消息机制初探(创建一个可以接收消息的子线程)
- Android异步通信机制简单地理解,Handler是当前线程的消息队列中的一个子队列,而Runable是可以被安排到Handler去运行的接口。 首先在Activity中创建一个继承自Han
- handler——子线程中创建消息处理机制
- HandlerThread(子线程也可以有消息传递机制)
- Handler消息传递机制(四)子线程接收主线程发送的消息
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android消息通信机制(主线程发消息到子线程)
- Android 贝塞尔曲线菜鸟起步
- Ubuntu 16.04.1 LTS配置Python3.6.0
- PlantUml
- Vulkan编程指南翻译 第五章 展现 第3节 全屏画幕
- 支持BLE 4.2的蓝牙SOC芯片与手机app之间的数据包长度(MTU)
- Android中消息机制初探(创建一个可以接收消息的子线程)
- 获取AndroidAPP当前进程的名称
- Codeforces Round #402 (Div. 2) D. String Game(二分)
- 使用SharedPreferences记录应用使用次数,判断是否加载导航页
- java 反射概念
- 保护眼睛,改变Notepad++ 配色
- Lua学习笔记4:类及集成的实现
- 网络信息安全及防范策略
- 如何选择才是一个正确的选择啊?遇事不慌不忙,理性加冷静就行了的。