Timer计时任务因系统时间的修改导致挂起解决方案

一款Android实时监控程序在长时间关机后出现界面卡死,原因是系统时间调整导致Timer任务挂起。系统时间回调到当前时间之前时,Timer会暂停。解决方法是监听Intent.ACTION_TIME_CHANGED广播并在接收到时重启Timer任务。通过实现BroadcastReceiver并在Handle中处理重启逻辑,成功解决了问题。

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

    之前开发的一款运行在定制Android设备上的一个实时监控程序发生了一个很奇怪的问题:关机状态下放置了半个月左右的时间之后,再次开机使用,使用到一半的时候,显示界面就卡死在某一个状态下了(显示界面只显示一行文字,代表当前的状态)。取到的log信息里没有任何错误信息,测试也很难再现问题(因为条件较难满足,关机状态下放置半个月)。之后就各种查问题......

    终于找到是Timer的问题:如果在启动一个Timer任务之后,进行了系统时间的修改操作,包括系统自动同步网络时间,都有可能导致这个Timer任务挂起

    系统时间修改到当前时间之后,不会影响Timer的执行;但是如果系统时间修改到当前时间之前,就会导致Timer挂起。详见博文:“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值