我想阻止用户离开我的应用。我试图通过家庭启动器活动/应用程序实现这一点,我不明白android的行为。首次按HOME将始终在新任务中创建新活动 ,而不是将现有活动移至前台。当第二次按HOME时,没有任何反应。见例:
我有登录活动(A)和设置活动(B)。 B从A打开.A被设置为发射器(LAUNCHER,DEFAULT,HOME类别)。
当A的 launchMode 是 singleTop , singleTask 或标准时,我会得到相同的行为。使用 singleInstance 只有一个A,但B在T1中单独使用,我不希望这样。
为什么总会创建新任务?所有意图标志都始终 FLAG_ACTIVITY_NEW_TASK 标志设置。为什么android会这样做?
它与发布的here或here的行为相同吗?我无法使用该解决方案,因为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,... 的组合,但没有成功 - 总是新任务。
知道如何解决这个问题吗?在棒棒糖上运行。谢谢。