点击返回后com.android.launcher中的ANR
当我在某些设备上安装我的应用程序(似乎是4.4.4及更高版本)时,我有时会在com.android.launcher中看到以下ANR,步骤如下:点击返回后com.android.launcher中的ANR,android,Android,当我在某些设备上安装我的应用程序(似乎是4.4.4及更高版本)时,我有时会在com.android.launcher中看到以下ANR,步骤如下: 从活动A启动活动B 在活动B中,按系统返回键,然后在活动B的onBackPressed()方法中重新启动活动A(代码如下) System back键保持按下状态5秒钟,屏幕变黑,我的应用程序关闭,启动程序启动。调查日志显示启动器进程中存在ANR com.android.launcher中的ANR (com.android.launcher/com.an
## User starts Activity A from Android Launcher
D/Activity A: onResume()
D/Activity A: onClick(): start Activity B
D/Activity A: onPause()
D/Activity B: onResume()
## User taps system back key (and onBackPressed() launches Activity A)
D/Activity B: onBackPressed(): start Activity A
D/Activity B: onPause()
D/Activity A: onResume()
D/Activity A: onClick(): start Activity B
D/Activity A: onPause()
D/Activity B: onResume()
## User taps system back key (but onBackPressed() is not invoked. Instead an ANR occurs)
I/InputDispatcher( 557): ANR in com.android.launcher
D/Activity B: onPause()
下面是我的onBackPressed()方法:
这可能是Android框架中的一个bug。我今天在大约12台设备上进行了测试,发现这个错误在运行以下Android版本的Nexus类型设备上可靠地发生:
- 4.4.4
- 5.0.1
- 5.0.2
发布onbackpress代码我添加了onbackpress()代码。好的建议。这不是真的,如果您重写onbackpressed而不执行任何操作,则不会执行任何操作,因此不会执行anr,这通常是真的,但在我的情况下不是这样,因为我的onbackpressed()方法正在启动活动A。我已编辑了原始问题以包含此信息。谢谢你的建议,我包括源代码。类似的经验。我有两个活动可以使用FLAG\u ACTIVITY\u REORDER\u TO\u FRONT来回切换。最奇怪的是:只有当我从A->B->A切换时,错误才会发生。。它不会发生在A->B、A->B->A->B、甚至A->B->A->B->A或任何其他组合上。。我不妨把这个问题放在我的软件自述文件的已知问题部分。没错,大多数情况下都发生在nexusian 4.x到5.x(模拟器)上。。尝试了6.x模拟器,一切正常。在我自己的非nexus手机上试用过,效果也不错。
public void onBackPressed() {
Intent intentStartRoot = new Intent().setComponent(new ComponentName(this, ActivityHome.class));
intentStartRoot.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intentStartRoot);
}