长时间运行app,产生anr

本文讨论了一个应用程序在长时间运行后出现ANR(应用无响应)的问题。通过对代码的调试发现,位置更新过程中的耗时虽然短暂,但长时间累积导致了界面更新问题。为了解决这一问题,提出了两种方案:一是仅在位置发生改变时更新UI;二是将复杂的计算任务如经纬度转换放在后台线程中执行,从而减少UI线程的负担。

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

       app需要实时的更新当前的地址位置信息,在位置监听中进行显示出来,包括经纬的转换,距离目标,在测试几个小时内没有问题,但是在12个小时以上就出现了界面点击无响应。

解决办法

      调试发现监听中耗时10ms+,在界面更新的范围内,但在长时间却出现anr,说明还是耗时太长,更新频率有问题。解决方法:

      1.在位置发现改变时才更新UI

      2.经纬度的转换等计算的任务,放在线程中,UI线程只更新界面

      总结UI线程最好只更新界面,不要频繁的刷新界面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值