在不破坏底部活动的情况下返回一些活动

Going back few activities without destroying the bottom one

我做了一个包含 3 个活动的简单示例:

  1. ActivityA

  2. ActivityB

  3. ActivityC

每个按钮上只有一个按钮。

它做了我想要的,整个流程在记录时看起来像这样:

ActivityA onCreate()
ActivityA button clicked
ActivityB onCreate()
ActivityB button clicked
ActivityC onCreate()
ActivityC button clicked
ActivityB onDestroy()
ActivityA onDestroy()
ActivityA onCreate()
ActivityC onDestroy()

此解决方案的问题在于 ActivityA 被重新创建(销毁和创建)。 有没有办法恢复它?

免责声明: 这当然只是一个简化的案例。由于我的应用程序中的几个原因,我宁愿避免在点击方法上使用 onActivityResult()finish()。我需要保留正确的后退按钮行为。

你几乎做对了。你缺少的(为了避免 activity 重新创建)是一个 FLAG_ACTIVITY_SINGLE_TOP 标志。

val intent = Intent(this, ActivityA::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)

更多信息here