Android6.0系统app无响应或者报错时,会弹出提示对话框,现在要求修改不提示对话框,然后指定的应用直接重启应用。
我们找到弹出报错和无响应对话框是在frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java中UiHandler去处理的。当应用 报错时会收到SHOW_ERROR_MSG的msg,当应用无响应的时候会收到SHOW_NOT_RESPONDING_MSG的msg。
我们首先把提示对话框给屏蔽掉,只需要修改private static final boolean shouldShowDialogs(Configuration config)返回false即可。
private static final boolean shouldShowDialogs(Configuration config) {
//return !(config.keyboard == Configuration.KEYBOARD_NOKEYS
// && config.touchscreen == Configuration.TOUCHSCREEN_NOTOUCH
// && config.navigation == Configuration.NAVIGATION_NONAV);
return false;
}
然后,添加一个重启app的方法(“com.android.pkagename”为报错或无响应时重启的app包名):
private void ReStartappl