JHandler
===
Android 2.2.3 里面handler相关的源码,用于学习handler机制。
可用于java、javafx等项目,作为线程消息队列使用。
```java
public class HandlerTest {
public static void main(String... args) {
//启动一个主线程处理消息
startMainHandler();
//其他的handler线程
HandlerThread handlerThread = new HandlerThread("MAIN") {
@Override
protected void onLooperPrepared() {
super.onLooperPrepared();
//设置这个线程为handler消息处理的主线程
Log.d("MAIN", "tid=" + Thread.currentThread().getId());
}
};
//开始运行主线程
handlerThread.start();
//其他线程
Thread otherThread = new Thread(() -> {
Handler mainHandler = new Handler(Looper.getMainLooper());
Handler htHandler = new Handler(handlerThread.getLooper());
while (true) {
Log.d("\notherThread", "=====================\n");
Log.d("otherThread", "tid=" + Thread.currentThread().getId());
mainHandler.postDelayed(() -> {
//这将会在mainThread里面运行
Log.d("mainHandler", "run:tid=" + Thread.currentThread().getId());
}, 3000);
htHandler.postDelayed(() -> {
//这将会在handlerThread里面执行
Log.d("htHandler", "run:tid=" + Thread.currentThread().getId());
}, 2000);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
otherThread.start();
}
/**
* 启动之后,可以使用Looper.getMainLooper()
*/
public static void startMainHandler() {
//此线程做为handler的主线程
Thread mainThread = new Thread(() -> {
Looper.prepareMainLooper();
Log.d("mainThread", "tid=" + Thread.currentThread().getId());
Looper.loop();
});
mainThread.start();
}
}
```
```log
> Task :HandlerTest.main()
2023-03-02 10:40:55 MAIN:tid=16
2023-03-02 10:40:55
otherThread:=====================
2023-03-02 10:40:55 mainThread:tid=15
2023-03-02 10:40:55 otherThread:tid=17
2023-03-02 10:40:57 htHandler:run:tid=16
2023-03-02 10:40:58 mainHandler:run:tid=15
2023-03-02 10:41:00
otherThread:=====================
2023-03-02 10:41:00 otherThread:tid=17
2023-03-02 10:41:02 htHandler:run:tid=16
2023-03-02 10:41:03 mainHandler:run:tid=15
```
免责声明:
1.本资源仅供学习和交流使用,不保证其准确性、完整性、及时性或适用性。
2.本资源仅包含一般信息,不构成专业建议。在使用本资源时,请务必自行研究并谨慎决策。
3.我已尽力确保本资源的正确性和合法性,但不对其准确性、完整性和及时性做出保证。
4.本资源不应用于商业用途。
5.在使用本资源的过程中,用户应自行承担所有风险和责任,并遵守相关法律法规。
6.对于因使用本资源而产生的任何损失或损害,我概不负责。
请确保在使用本资源时仔细阅读并遵守以上免责声明。如果您有任何疑问或需要进一步帮助,请联系我。
资源最后修改时间:2024-09-24 21:39:47
22873031258344
59eb8141-64e0-4a09-b728-7c1a6124f81c
苹果醋3
- 粉丝: 1393
- 资源: 72
最新资源
- manage-vue.rar综合管理资源
- 基于ssm的智能图书馆导航系统源代码(完整前后端+mysql+说明文档+LW).zip
- 废物检测68-YOLO(v5至v9)、COCO、Darknet数据集合集.rar
- 基于ssm的校园外卖管理系统源代码(完整前后端+mysql+说明文档+LW).zip
- 基于ssm的疫情冷链追溯系统源代码(完整前后端+mysql+说明文档+LW).zip
- py32F0系列 keil固件包pack
- 基于ssm的陆丰市医院分诊管理系统源代码(完整前后端+mysql+说明文档+LW).zip
- C语言实例-毕业设计项目:职工工作量统计系统,面向人事管理的高效工具-开题报告,论文,答辩PPT参考
- 基于ssm的汽车销售分析与管理系统带爬虫源代码(完整前后端+mysql+说明文档+LW).zip
- C++语言实例-毕业设计项目:字符雨屏幕保护程序-开题报告,论文,答辩PPT参考
- C语言实例-毕业设计项目:产品入库管理系统设计与实现-开题报告,论文,答辩PPT参考
- 基于ssm的水稻朔源信息系统源代码(完整前后端+mysql+说明文档+LW).zip
- C++语言实例-毕业设计项目:黑白棋AI游戏开发-开题报告,论文,答辩PPT参考
- C++语言实例-毕业设计项目:拼图游戏开发,面向对象编程实践-开题报告,论文,答辩PPT参考
- 基于ssm的医院门诊管理系统源代码(完整前后端+mysql+说明文档+LW).zip
- C++语言实例-毕业设计项目:贪吃蛇双人对战游戏开发-开题报告,论文,答辩PPT参考
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈