主线程和子线程之间的交互的实现
来源:互联网 发布:网络销售的工资待遇 编辑:程序博客网 时间:2024/05/25 19:55
1.创建主线程的handler,并向子线程发送消息://主线程的handlerHandler handler = new Handler(){public void handleMessage(android.os.Message msg) {Message message = new Message();threadHandler.sendMessageDelayed(message, 1000);//向子线程发送消息};};2.创建子线程的handler,向主线程发送消息,要关联一个threadHandler,threadHandler.getLooper()得到一个looper对象HandlerThread handlerThread = new HandlerThread("handler thread");handlerThread.start();//不要忘记调用start方法!//子线程的handlerthreadHandler = new Handler(handlerThread.getLooper()){@Overridepublic void handleMessage(Message msg) {//处理消息Message message = new Message();handler.sendMessageDelayed(message, 1000);}};
1. 在主线程中创建两个Handler对象 handler 和 handler2(图中是threadHandler),并直接初始化 handler,而handler2 不初始化。
2. 使用 HandlerThread 创建一个子线程 thread ,并启动 thread 。
3. 初始化 handler2(使用 thread 的 getLooper()作为参数),这样一来handler2就是子线程的 Handler 对象。
4. 重写 handler 和 handler2 的 handleMessage()方法,在里面创建Message对象,并使用对方的sendMessageDelayed(message,1000);方法发送消息。
5. 定义一个Button,定义点击事件,由点击事件触发如上交互的操作。如上操作中,第4点是核心,也就是两个 Handler 各自重写 handleMessage(),方法里面却是使用对方的 sendMessage() 方法。这样就实现了主线程和子线程的相互发送信息。
--------------
取消发送,经测试,需要将UIhandler 和 threadhandler中的message的what 设置为1,取消的时候要同时removeMessage(1);
阅读全文
0 0
- 主线程和子线程之间的交互的实现
- 安卓--子线程和主线程之间的交互实例(时钟)
- Android Thread子线程和主线程的UI交互
- 内部通信:主线程和子线程之间的通信
- 主线程和子线程之间的一些东西
- android 主线程和子线程之间的消息传递
- android 主线程和子线程之间的消息传递
- android 主线程和子线程之间的消息传递
- android 主线程和子线程之间的消息传递
- android 主线程和子线程之间的消息传递
- Android之用Handler实现主线程和子线程互相通信以及子线程和子线程之间的通信
- Android 子线程和UI线程(主线程)的几种交互方式
- 主线程与子线程之间通讯, 子线程与子线程之间的通讯
- 线程中主线程与子线程之间的关系
- C#中创建线程的方式,以及主线程和子线程之间的资源调用
- 主线程和子线程的双向通信
- 主线程和子线程的区别
- 主线程和子线程的区别
- 字符指针和字符数组
- Spring Boot 入门
- Java类加载器的工作原理
- java可变长参数列表
- 浅谈一下mshta在CVE-2017-11882里的命令构造
- 主线程和子线程之间的交互的实现
- Makefile经典教程
- 哈希查找之平方探测
- C语言—三子棋
- C++11新特性emplace操作
- Java面试题集(1-50)——附完整答案
- SpringMVC之类型转换Converter
- 高可用缓存
- 渗透经验 | Windows下载远程Payload并执行代码的各种技巧