Android:只有在首次按下HOME

时间:2016-02-23 21:51:59

标签: android android-intent android-launcher android-homebutton android-task

我想阻止用户离开我的应用。我试图通过家庭启动器活动/应用程序实现这一点,我不明白android的行为。首次按HOME将始终在新任务中创建新活动 ,而不是将现有活动移至前台。当第二次按HOME时,没有任何反应。见例:

我有登录活动(A)和设置活动(B)。 B从A打开.A被设置为发射器(LAUNCHER,DEFAULT,HOME类别)。

  1. A打开B.
    • 任务T1:A - >乙
  2. HOME
  3. 另一个A被创建到一个新任务中(为什么?):
    • T1:A - >乙
    • T2:A
  4. A打开B(任务T2)
    • T1:A - >乙
    • T2:A - >乙
  5. HOME
  6. 没有任何反应,为什么?
  7. 当A的 launchMode singleTop singleTask 标准时,我会得到相同的行为。使用 singleInstance 只有一个A,但B在T1中单独使用,我不希望这样。

    为什么总会创建新任务?所有意图标志都始终 FLAG_ACTIVITY_NEW_TASK 标志设置。为什么android会这样做?

    它与发布的herehere的行为相同吗?我无法使用该解决方案,因为android创建了一个新任务,因此A将永远是根。 (或者我如何检查这是第二个实例?)

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

    我甚至无法使用this解决方案,因为我从未意识到FLAG_ACTIVITY_BROUGHT_TO_FRONT标志。始终存在FLAG_ACTIVITY_RESET_TASK_IF_NEEDED标志。

    我已经尝试了很多与 launchMode,clearTaskOnLaunch,noHistory,... 的组合,但没有成功 - 总是新任务。

    知道如何解决这个问题吗?在棒棒糖上运行。谢谢。

0 个答案:

没有答案