这是我第一次尝试在向上导航中使用意图标志,我感到困惑,这是正确的意图标志使用。我的应用程序树是:
A
/ \
B S
| |
C W
| |
D D
主要活动是A,S是可搜索的活动。活动状态S和W被保存。当从D向上导航时,它转到C,然后是B和A.对于S,W,D,它是相同的。
我最好的方法是在所有意图中使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
。在2.3.3中一切正常但是当我尝试4.2时,在导航时会破坏活动。例如,当我去:A-S-W然后我向上导航到S,S恢复。在这种情况下出现的问题是:A-S-W-D然后向上导航到W.在这种情况下,W和S被销毁并且A被恢复。在另一种情况下也是如此:A-B-C然后向上导航到B,当A-B-C-D然后导航到A时。
据我了解,使用FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP完成调用活动,如果被调用的活动在堆栈中,则不会创建新实例。但这种情况并没有发生。
为什么活动被破坏?在这个简单的情况下,哪些是正确的标志?