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

  • 重现此问题的步骤。
  • 安装任何.apk文件
  • 安装后,您将获得两个按钮“打开”和“完成”。
  • 打开按钮的Onclick打开/启动应用程序。
  • 现在在您的应用程序中导航并转到任何其他屏幕,例如第二屏幕,第三屏幕。
  • 现在,按Home键,然后将应用程序置于后台(意味着置于暂停状态)。
  • 现在转到应用程序列表。单击同一应用程序的启动器图标。
  • 发生了什么事。
  • 从第一个屏幕的起点开始正在启动同一应用程序。
  • 它必须在第三个屏幕上恢复正在运行的应用程序。
  • 现在按下并从第二次启动的应用程序的第一屏幕中退出。
  • 显示第一次运行应用程序的第三个屏幕。

  • 我已经解释了安装后的一般行为,并使用“打开”按钮启动应用程序。
    在我的应用程序中,它创建2次启动的应用程序的状态不一致。
  • 您认为正确的行为应该是什么。
  • 应用程序必须恢复。
  • 应用程序不得处于不一致状态。

  • 我有一些日志。
  • 单击“打开”按钮日志:

  • 10-04 21:45:28.703:INFO/ActivityManager(243):开始 Activity :目的{行为= android.intent.action.MAIN flg = 0x10000000 cmp = com.test/.TestnewversionActivity}来自pid 15146。

    “没有在上面的意图中添加任何类别”
  • 点击“启动器”图标的日志:

  • 10-04 21:46:46.109:INFO/ActivityManager(243):开始 Activity :目的{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

    最佳答案

    请向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);
        }
    }
    

    07-24 09:49
    查看更多