活动回栈似乎丢失了

时间:2018-12-06 09:35:36

标签: android android-activity back-stack activity-finish

我有2个活动:A和B
在B中,我有一个后退箭头,可以通过调用“ finish()”方法返回A。
正常运行,除非完成以下操作:

  • 我去B
  • 我将应用置于后台
  • 我从“最近使用的应用”还原了我的应用
  • 我按后退箭头,然后该应用程序完成,而不是返回活动A。

请帮忙吗?

4 个答案:

答案 0 :(得分:0)

请勿保留活动,请确保未在设备的开发人员设置中启用此选项。

答案 1 :(得分:0)

我想出了解决方法:
正如@Karthikeyan在其注释中提到的,将launchMode设置为“ singleInstance”是导致此问题的原因。我将其更改为“ singleTask”,效果很好。
实际上,根据https://developer.android.com/guide/components/activities/tasks-and-back-stack中所述的Google文档,

  

“ singleInstance”。       与“ singleTask”相同,除了系统不会将任何其他活动启动到保存实例的任务中。

从逻辑上讲,使用“ singleInstance”从后台恢复时,该活动在同一后堆栈中没有其他活动,因此,调用finish()可以简单地完成该活动,而无需恢复任何活动(第一个活动位于背景和另一个单独的任务)

答案 2 :(得分:0)

  

在onStop()方法中设置标志,以根据Flag值的更改来了解和写入条件onBackPress()条件以导航至A

答案 3 :(得分:0)

在清单文件中将活动A作为活动B的父活动。为您服务。

相关问题