FM ANR Reason: keyDispatchingTimedOut

本文详细记录了一次解决Android应用ANR(应用无响应)问题的过程。通过分析系统的日志信息,发现ANR的原因在于主界面创建过程(oncreate)中执行了耗时任务。文章给出了避免ANR的有效方案,即通过异步线程来处理耗时任务。

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

11-29 10:11:08.615: WARN/ActivityManager(271): Activity idle timeout for HistoryRecord{40583578 com.thunderst.radio/.FMPlay}
11-29 10:11:38.835: ERROR/ActivityManager(271): ANR in com.thunderst.radio (com.thunderst.radio/.FMPlay)
11-29 10:11:38.835: ERROR/ActivityManager(271): Reason: keyDispatchingTimedOut
11-29 10:11:38.835: ERROR/ActivityManager(271): Load: 4.28 / 4.47 / 4.06
11-29 10:11:38.835: ERROR/ActivityManager(271): CPU usage from 7486ms to 2404ms ago:
11-29 10:11:38.835: ERROR/ActivityManager(271):   2.9% 271/system_server: 1.5% user + 1.3% kernel / faults: 20 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):   0% 64/file-storage: 0% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.5% 115/adbd: 0% user + 0.5% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.3% 283/ipolldevd: 0% user + 0.3% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0% 103/2-0038: 0% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0% 121/engpcclient: 0% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 368/com.android.systemui: 0% user + 0.1% kernel / faults: 3 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):   0% 499/flush-179:0: 0% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 681/vhub: 0% user + 0.1% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 690/logcat: 0.1% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 864/com.android.phone: 0% user + 0.1% kernel / faults: 3 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 981/com.thunderst.radio: 0.1% user + 0% kernel / faults: 38 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 991/com.thunderst.radio:remote: 0.1% user + 0% kernel / faults: 11 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 1005/btld: 0% user + 0.1% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   0.1% 1131/com.android.browser: 0.1% user + 0% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271): 0.9% TOTAL: 0.5% user + 0.3% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271): CPU usage from 460ms to 978ms later:
11-29 10:11:38.835: ERROR/ActivityManager(271):   3.8% 271/system_server: 0% user + 3.8% kernel / faults: 1 minor
11-29 10:11:38.835: ERROR/ActivityManager(271):     3.8% 328/InputDispatcher: 0% user + 3.8% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271):   1.6% 946/logcat: 0% user + 1.6% kernel
11-29 10:11:38.835: ERROR/ActivityManager(271): 1.9% TOTAL: 0% user + 1.9% kernel

Reason: keyDispatchingTimedOut


可能把需要长时间加载的逻辑放在了 oncreate里面进行了操作。就会出现这个问题。。
记住一但oncreate里面的代码逻辑执行时间过长就会出现,尽量避免 这个情况。

一般需要长时间的东东,比如下载内容,逻辑不能放oncreate里面做,要保证oncreate里面的东西迅速加载完成,可以在oncreate启一个线程来(比如task)完成相应内容。

我们一个项目中就是这样,一直出现这个破错误,搞的很恼火,后来加了异步线程来处理,就好了。。。。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值