7

Android 问题:此问题仅在安装并单击打开按钮后第一次出现,在使用启动器图标启动应用程序后,问题将永远不会出现。

  • 重现问题的步骤。

    1. 安装任何 .apk 文件
    2. 安装后,您将获得两个按钮“打开”和“完成”。
    3. Onclick 打开按钮它正在打开/启动应用程序。
    4. 现在在您的应用程序中导航并转到任何其他屏幕,例如第二个屏幕,第三个屏幕。
    5. 现在,按 Home 并将应用程序置于后台(意味着进入暂停状态)。
    6. 现在转到应用程序列表单击同一应用程序的启动器图标。
  • 发生了什么。

    1. 它是从第一个屏幕的起点启动相同的应用程序。
    2. 它必须在第三个屏幕上恢复正在运行的应用程序。
    3. 现在按返回并从第二次启动应用程序的第一个屏幕出来。
    4. 它显示第一次运行应用程序的第三个屏幕。

我已经向您解释了安装后的一般行为并使用打开按钮启动应用程序。在我的应用程序中,它创建了 2 次启动应用程序的不一致状态。

  • 你认为正确的行为应该是什么。

    1. 申请必须恢复。
    2. 应用程序不得处于不一致的状态。

我有一些日志..

  • 单击“打开”按钮日志:

10-04 21:45:28.703:INFO/ActivityManager(243):开始活动:Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.test/.TestnewversionActivity } 来自 pid 15146。

“请参阅以上意图中未添加任何类别”

  • 单击“启动器”图标的日志:

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 } 来自 pid 428

“请参阅上面意图中添加的类别”。

如果有人告诉我如何解决此问题或告诉我如何在“打开”按钮单击时将类别添加为 android.intent.category.LAUNCHER,那么问题将解决。

我试图在应用程序启动、oncreate 和许多地方添加类别。intent.addCategory("android.intent.category.LAUNCHER"); 还尝试使用 IntentFilter、PackageManager。

这个问题存在于每部 Android 手机中。

我在 HTC-SENSE Android 版本 2.3.3 上记录了日志

4

1 回答 1

1

请将代码添加到 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);
    }
}
于 2013-08-07T06:43:00.877 回答