在新任务backstack中需要单个活动

时间:2014-03-19 17:15:09

标签: android android-activity task back-stack

当必须处理android任务和启动模式(标志)时,这是一场噩梦。

需要完成这个场景:

从后台服务启动活动[1]属于新任务中的App [A]。 当用户进入[后退] - 完成活动[1]并恢复以前在前景中的应用程序时!

如果App [A]处于活动状态且正在运行 - 没有问题,[beck]关闭Activity [1]并恢复App [A]。 但是,如果在启动Activity [1]时,任何其他App [B]处于前台(即使使用新任务),所有App [A]任务和堆栈都会通过App [B]向前推进并打破[返回]导航。 我想在从Activity [1]导航回来后看到App [B]。

尝试了几个旗帜组合,但没有一个完成所需的。

仅在App [A]运行时适用:

                Intent.AddFlags(ActivityFlags.NewTask);
                Intent.AddFlags(ActivityFlags.ReorderToFront);
                Intent.AddFlags(ActivityFlags.ExcludeFromRecents);

仅在App [B]运行时清除(清除App [A] Backstack):

                Intent.AddFlags(ActivityFlags.NewTask);
                Intent.AddFlags(ActivityFlags.ClearTask);
                Intent.AddFlags(ActivityFlags.ExcludeFromRecents);

如何配置Intent只启动一个独立的Activity [1]并返回以恢复以前屏幕上的内容?

1 个答案:

答案 0 :(得分:1)

我认为Intent.FLAG_ACTIVITY_MULTIPLE_TASK标志会执行

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);