handler的一些测试

本文详细介绍了Android中的Handler机制,包括其作用、线程间消息传递原理及如何正确使用Handler避免线程冲突等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触handler,很多不能理解,网上找了一些资料,把觉得有用的总结了一些


首先,重要的一点,线程不能多次启动,第一次启动会有一个状态,表示线程已经启动,如果再次启动,会报错。

04-12 03:42:49.186: E/AndroidRuntime(662): java.lang.IllegalThreadStateException: Thread already started.
04-12 03:42:49.186: E/AndroidRuntime(662): at java.lang.Thread.start(Thread.java:1322)


消息的归属者区分:一个是消息队列,一个是发送消息的handler


引自:点击打开链接

总结:

1.handler的作用(为什么使用handler):

1)按计划发送消息或执行某个Runnanble(使用POST方法),类似定时器
2)从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程);

2.当handler在一个线程中创建,就会与他所在的线程和消息队列进行绑定;

3.一个线程对应一个Looper(消息循环),一个MessageQueue(消息队列)

4.一个线程中可以对应多个handler,但是共用一个Looper和MessageQueue;

5.handler可以从任何线程发送消息(前提必须有looper实例);



引自:点击打开链接

Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新 概念。我们的主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,我们引入一个新的机制Handle,我们有消息循环,就要往消息循环里 面发送相应的消息,自定义消息一般都会有自己对应的处理,消息的发送和清除,消息的的处理,把这些都封装在Handle里面,注意Handle只是针对那 些有Looper的线程,不管是UI线程还是子线程,只要你有Looper,我就可以往你的消息队列里面添加东西,并做相应的处理。 但是这里还有一点,就是只要是关于UI相关的东西,就不能放在子线程中,因为子线程是不能操作UI的,只能进行数据、系统等其他非UI的操作。


后来想了想,如果有两个线程,这里的消息 ,handler该怎么去取,本想debug实际看看,结果断点竟然不会停下来,一直没搞懂,只能进行一些推断,

结果:如果两个线程都有各自的handler,则由

handler.sendEmptyMessage(2);

这里的handler处理这个消息

推断:每个线程都有各自的   loop,在自己线程中sendmessage,是把消息送到自己的loop中,但是如果改写run()方法的时候加上这一句

Looper.prepareMainLooper();
那么会使两格线程公用一个looper,如果在含有这一句代码的线程  的构造方法中传入其他线程的handler,则可以有其他线程的handler处理此线程的sendmessage。

这里实质上,就是  其他线程(handler1.sendEmptyMessage(2);)发送消息,这个线程(handler1)处理消息。


第一次写这个,感觉有些乱,作为一些使用handler的感想吧。

代码下载

### 关于Handler芯片测试的方法和工具 #### 测试方法概述 对于Handler芯片的测试,主要关注的是其电性能、功能性和可靠性。通过使用专门设计的接口——即测试键,能够实现对芯片上电路的有效访问,在此期间可测量诸如电流、电压以及其他电气参数等重要指标[^1]。 #### 功能性验证 为了确保Handler芯片按预期工作,需对其进行功能性验证。这涉及向芯片施加预定义的输入信号组合,并仔细分析产生的输出响应,以此评估逻辑运算准确性及整体行为模式是否符合规格书的要求。 #### 终端测试(FT) 在完成封装之后,每一个Handler芯片都应经历一次全面而严格的终端测试(Final Test, FT),这是保障产品质量可或缺的一环。在此阶段,仅限于基本的功能检测,还包括更深层次的性能特性审查,旨在确认成品状态下的器件能否满足最初的设计标准[^2]。 #### 自动化测试解决方案 鉴于现代电子产品复杂度日益增加的趋势,采用自动化手段来进行高效精准的大规模量产检验变得尤为必要。虽然传统意义上的大型功能自动测试设备(FATE)因成本高昂和技术局限性逐渐淡出主流视野,但对于某些特定应用场景下仍然适用;而对于大多数情况,则更多依赖集成度更高、灵活性更强的新一代ATE(Automatic Test Equipment)[^3]。 #### 针对LCD驱动器IC的具体考量 如果Handler芯片涉及到液晶显示器(LCD)控制器的应用领域,那么针对这类专用集成电路(ICs)还需要考虑额外的一些因素。由于同制造商的产品间可能存在结构差异,因此建议依据具体型号定制相应的测试方案,以适应各自独特的需求特点[^4]。 ```python # Python伪代码示例:模拟简单的Handler芯片测试流程 def test_handler_chip(chip_instance): # 初始化测试环境... try: apply_test_signals() # 施加预定输入信号 measure_electrical_parameters() # 获取并记录各项电气参数 check_output_response() # 对比实际输出与期望值 run_functional_tests() # 执行一系列功能测试案例 perform_final_verification() # 进行最后的整体校验 return "Pass" except Exception as e: log_error(e) return "Fail" print(test_handler_chip(my_chip)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值