安装apk"打开"和"完成"按钮显示后,单击打开按钮,它不会添加类别作为启动器

use*_*363 7 android android-intent

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

  • 重现问题的步骤.

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

    1. 从第一个屏幕的起点开始启动相同的应用程序.
    2. 它必须在第3屏幕上恢复正在运行的应用程序
    3. 现在按下并从第2次开始申请的第1个屏幕出来.
    4. 它显示了第一次运行应用程序的第3个屏幕.

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

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

    1. 申请必须恢复.
    2. 申请不得处于不一致的状态.

我有一些日志..

  • 单击"打开"按钮日志:

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

"看不到上面意图中添加的类别"

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

10-04 21:46:46.109:INFO/ActivityManager(243):开始活动:意图{act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.test /来自pid 428的.TestnewversionActivity}

"参见上面意图中添加的类别".

如果有人告诉我如何解决这个或告诉我如何在"打开"按钮上添加类别android.intent.category.LAUNCHER点击然后问题将解决.

我试图在app start,oncreate和很多地方添加意图类别.intent.addCategory( "android.intent.category.LAUNCHER"); 还尝试使用IntentFilter,PackageManager.

这个问题出现在每部Android手机中.

我已经在HTC-SENSE Android版本2.3.3上使用了Logs

小智 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);
    }
}
Run Code Online (Sandbox Code Playgroud)