appNotResponding
时间: 2024-01-20 19:03:00 浏览: 119
Android ANR(Application Not Responding)的分析
appNotResponding是ActivityManagerService中的一个方法,用于触发应用程序ANR(Application Not Responding)处理流程。当应用程序长时间未响应时,ActivityManagerService会调用该方法,将应用程序标记为“not responding”,并弹出ANR对话框。
该方法的源码如下:
```
void appNotResponding(ProcessRecord app, ActivityRecord activity, ActivityRecord parent,
boolean aboveSystem, final String annotation) {
synchronized (this) {
if (app.notResponding) {
return;
}
makeAppNotRespondingLocked(app, activity, parent, aboveSystem, annotation, false);
}
}
```
其中,app表示发生ANR的应用程序,activity和parent表示当前活动Activity和其父Activity,aboveSystem表示当前活动Activity是否在系统UI之上,annotation是一个注释字符串,用于描述ANR的原因。
该方法的实现首先通过synchronized关键字保证线程安全,然后调用makeAppNotRespondingLocked方法触发ANR处理流程。
阅读全文