今天遇到一个问题:当首次安装 APP,完成时直接点击打开会出现一种情况:按 home 键返回桌面,再点击 APP 图标,发现 APP 重启并回到首页。再次按 home 键返回桌面,点击 APP 图标,依然是重启并回到首页。当强制杀掉后台进程,或者一直按返回直到 APP 正常退出,此问题消失。
在第一次安装后,Activity 管理栈似乎对进入的 Activity 不做任何判断与标记(是否是栈顶的Activity),每次都会入栈,在将栈清空后又恢复正常(就是 Task 对 Activity 做记录了,哪个处于栈顶,是否在栈里等)。
解决办法:在启动页 Activity 的 onCreate 方法中的 super.onCreate 后面加入以下代码
if (!this.isTaskRoot()) {
Intent mainIntent = getIntent();
String action = mainIntent.getAction();
if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
finish();
return;
}
}