当必须处理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]并返回以恢复以前屏幕上的内容?
答案 0 :(得分:1)
我认为Intent.FLAG_ACTIVITY_MULTIPLE_TASK
标志会执行
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);