6

我想阻止用户离开我的应用程序。我正在尝试通过家庭启动器活动/应用程序来实现这一点,但我不了解 android 的行为。第一次按 HOME 总是在新任务中创建新活动,而不是将现有活动移到前台。第二次按 HOME 等时,没有任何反应。参见示例:

我有一个登录活动 (A) 和设置活动 (B)。B 从 A 打开。A 设置为启动器(LAUNCHER、DEFAULT、HOME 类别)。

  1. A 打开 B
    • 任务 T1:A -> B
  2. 另一个 A 被创建到一个新任务中(为什么?):
    • T1:A -> B
    • T2:一个
  3. A 打开 B(任务 T2)
    • T1:A -> B
    • T2:A -> B
  4. 什么都没有发生,为什么?

当 A 的launchModesingleTopsingleTaskstandard时,我会得到相同的行为。使用singleInstance只有一个 A,但 B 在 T1 中单独存在,我不希望这样。

为什么总是有新的任务被创建?所有意图标志始终设置FLAG_ACTIVITY_NEW_TASK标志。为什么安卓会这样做?

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

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

我什至不能使用这个解决方案,因为我从来没有使用 FLAG_ACTIVITY_BROUGHT_TO_FRONT 标志。总是有 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 标志。

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

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

4

0 回答 0