Android问题:这个问题是在安装并点击打开按钮后第一次出现的,在用启动器图标启动应用程序后,问题永远不会出现。
-
重现问题的步骤。
- 安装任何.apk文件
- 安装后,您将获得两个按钮"打开"one_answers"完成">
- 单击"打开"按钮即可打开/启动应用程序
- 现在,在您的应用程序中导航并转到任何其他屏幕,如第二屏幕、第三屏幕
- 现在,按主页并将应用程序置于后台(表示处于暂停状态)
- 现在转到应用程序列表单击相同应用程序的启动器图标
-
发生了什么。
- 它从第一个屏幕的起点启动相同的应用程序
- 它必须在第三个屏幕上恢复正在运行的应用程序
- 现在按下后退,从第二次启动应用程序的第一个屏幕出来
- 它显示第一次运行应用程序的第三个屏幕
我已经向您解释了安装后的一般行为,并用打开按钮启动应用程序。在我的应用程序中,它创建了2次启动应用程序的不一致状态。
-
你认为正确的行为应该是什么。
- 应用程序必须恢复
- 应用程序不得处于不一致状态
我有一些日志。。
- 点击"打开"按钮记录:
10-04 21:45:28.703:信息/ActivityManager(243):启动活动:来自pid 15146的Intent{act=android.Intent.action.MAIN flg=0x100000000 cmp=com.test/.TestnewversionActivity}。
- 点击"启动器"图标的日志:
10-04 21:46:46.109:INFO/ActivityManager(243):启动活动:Intent{act=android.Intent.action.MAIN cat=[android.Intent.category.LAUNCHER]flg=0x10200000 cmp=com.test/.TestnewversionActivity}from pid 428
"参见上文意图中添加的类别"。
如果有人告诉我如何解决这个问题,或者告诉我如何在"打开"按钮上添加类别为android.intent.category.AUNCHER,那么问题就会解决。
我试着在应用程序启动、创建和许多地方添加类别。intent.addCategory("android.intent.category.LAUNCHER");还尝试使用IntentFilter,PackageManager。
这个问题在每个安卓手机中都存在。
我在HTC-SENSE上记录了日志安卓2.3.3版
请将代码添加到onCreate
if (isTaskRoot()) {
final Intent intent = getIntent();
final String intentAction = intent.getAction();
if (!intent.hasCategory(Intent.CATEGORY_LAUNCHER) &&
intentAction != null && intentAction.equals(Intent.ACTION_MAIN)) {
finish();
System.exit(0);
}
}