我有 Activity A -> B -> C -> D。如何从 Activity D 中打开现有的 B,清除 C 和 D?我最终会得到 A -> B。我不想重新创建一个新的 B。
最佳答案
我认为你必须使用FLAG_ACTIVITY_CLEAR_TOP
和 FLAG_ACTIVITY_SINGLE_TOP
。
根据文档:
consider a task consisting of the activities: A, B, C, D. If D calls startActivity() with an Intent that resolves to the component of activity B, then C and D will be finished and B receive the given Intent, resulting in the stack now being: A, B.
The currently running instance of activity B in the above example will either receive the new intent you are starting here in its onNewIntent() method, or be itself finished and restarted with the new intent. If it has declared its launch mode to be "multiple" (the default) and you have not set FLAG_ACTIVITY_SINGLE_TOP in the same intent, then it will be finished and re-created; for all other launch modes or if FLAG_ACTIVITY_SINGLE_TOP is set then this Intent will be delivered to the current instance's onNewIntent().
关于Android back stack - 返回到back stack中的某个activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394804/