Android:HomeLauncher活动仅在第一次按Home键时才重新创建为新任务

Android:HomeLauncher活动仅在第一次按Home键时才重新创建为新任务,android,android-intent,android-launcher,android-homebutton,android-task,Android,Android Intent,Android Launcher,Android Homebutton,Android Task,我想阻止用户离开我的应用程序。我试图通过HomeLauncher活动/应用程序实现这一点,但我不了解android的行为。第一次按HOME键总是在新任务中创建新活动,而不是将现有活动移动到前台。当第二次按HOME键等时,不会发生任何事情。见示例: 我有一个登录活动(a)和设置活动(B)。B从A打开。A设置为启动器(启动器,默认,主类别) A打开B 任务T1:A->B 家 在新任务中创建了另一个A(为什么?): T1:A->B T2:A A打开B(任务T2) T1:A->B T2:A->

我想阻止用户离开我的应用程序。我试图通过HomeLauncher活动/应用程序实现这一点,但我不了解android的行为。第一次按HOME键总是在新任务中创建新活动,而不是将现有活动移动到前台。当第二次按HOME键等时,不会发生任何事情。见示例:

我有一个登录活动(a)和设置活动(B)。B从A打开。A设置为启动器(启动器,默认,主类别)

  • A打开B
    • 任务T1:A->B
  • 在新任务中创建了另一个A(为什么?):
    • T1:A->B
    • T2:A
  • A打开B(任务T2)
    • T1:A->B
    • T2:A->B
  • 什么都没发生,为什么?
  • 当A的启动模式为singleTop、singleTask或standard时,我会得到相同的行为。对于singleInstance,只有一个A,但B在T1中是单独的,我不希望这样

    为什么总是创建新任务?所有意图标志都设置了总是活动新任务标志集。为什么安卓会这么做

    这与张贴的行为相同吗?我不能使用这个解决方案,因为android创建了一个新任务,所以a将始终是根。(或者我如何检查这是第二个实例?)

    我不能使用发布的singleInstance,因为我不希望B单独存在(如果A可见,它也是唯一的活动和任务(登录目的))。我试图通过ActivityManager删除所有其他任务,但是
    getAppTasks()
    用于SDK>=21,我的最小值是16

    我甚至不能使用这个解决方案,因为我从来没有对旗帜的活动产生过兴趣。如果需要标记,则始终会有标记\u活动\u重置\u任务\u标记

    我尝试了很多与launchMode、clearTaskOnLaunch、noHistory等的组合。。。但没有什么成功——总是新任务


    你知道怎么解决这个问题吗?吃棒棒糖跑步。谢谢。

    有完全相同的问题。这个问题有什么解决办法吗?