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
?
答案 0 :(得分:1)
使用android:taskAffinity是您的一种选择。
您可以将ActivityC
和ActivityD
配置为具有相同的相似性。使用Activity#finishAffinity()
ActivityD
和ActivityD
完成ActivityC
的关闭后,ActivityB
将恢复其先前的意图。