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 B
启动Activity A
时,我已经发送了一些现在丢失的数据;那么,我是否必须通过Activity C
发送该数据 - > Activity D
所以我可以拥有它并将其发送回Activity B
,当我从Activity D
打开它时,或者我可以如何恢复Activity B
?
使用android:taskAffinity可能是你的选择。
您可以使用相同的亲和力配置ActivityC
和ActivityD
。当使用ActivityD
Activity#finishAffinity()
和ActivityD
关闭ActivityC
时 - ActivityB
恢复其先前的意图。