首页 > 解决方案 > 在不破坏底部活动的情况下返回一些活动

问题描述

我做了一个包含 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()点击方法。我需要保留正确的后退按钮行为。

标签: androidandroid-intentandroid-activitykotlinandroid-lifecycle

解决方案


你做的几乎是对的。您缺少的(以避免重新创建活动)是一个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)

更多关于它在这里


推荐阅读