【发布时间】:2019-04-29 09:27:40
【问题描述】:
Activity A -> Activity B -> Activity C -> Activity D
假设我们有这个流程。从Activity D 我想回到Activity B,所以我的堆栈应该像这样关闭Activity D:
Activity A -> Activity B
我使用了startActivity(this, Activity B).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP),但它不会从后台堆栈恢复活动,它会再次创建它;
当我最初从Activity A 启动Activity B 时,我已经发送了一些捆绑包中的数据,这些数据现在丢失了;那么,我是否必须通过Activity C -> Activity D 发送该数据,以便当我从Activity D 打开它时将其发送回Activity B,或者我可以如何恢复Activity B?
【问题讨论】:
-
您可以使用 startActivityForResult 启动活动 D。对于那些你想在 D 关闭时关闭活动 C 的情况,将一些值传递给活动 C 的 onActivityResult 并从那里处理它。
标签: android android-activity kotlin back-stack application-lifecycle