1

这是我第一次尝试在向上导航中使用意图标志,我很困惑哪些是正确的意图标志。我的应用程序树是:

  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 中尝试时,活动在向上导航时被破坏。例如,当我去:ASW 然后我向上导航到 S,S 被恢复。在这种情况下出现问题:ASWD 然后向上导航到 W。在这种情况下,W 和 S 被破坏,而 A 被恢复。在另一种情况下也会发生同样的情况:ABC 然后向上导航到 B,然后当 ABCD 向上导航到 A。

据我了解,使用 FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_SINGLE_TOP 完成调用活动,如果被调用活动在堆栈中,则不会创建新实例。但这并没有发生。

那么为什么活动会被破坏呢?在这个简单的案例中使用哪些正确的标志?

4

0 回答 0