使用home按钮启动时,android intent会重新传递

时间:2011-06-23 08:08:28

标签: android android-activity android-intent

以下是我遇到的问题:

我通过按通知栏开始活动,该通知栏包含一个额外的标记,表示活动是从通知开始的。我在我的活动的oncreate方法中使用此标志(这是我的应用程序的主屏幕),如果设置了额外的通知,则在该屏幕上启动一个新屏幕。

所以这部分很有效。现在发生的事情就是当我点击通知并按退出键退出应用程序时,如果我之后通过按主页按钮从最近的重新启动它,它似乎重新发送来自通知的最后一个意图所以它启动我的屏幕再次。我已经在清单中尝试了一堆旗帜,到目前为止我还没有成功。

这是我用于活动的标志。

 android:clearTaskOnLaunch="true" 
    android:alwaysRetainTaskState="false"

这里的任何想法? 谢谢。

1 个答案:

答案 0 :(得分:3)

好的,事实证明,如果你的活动被宣布为singleTop,那么每次你按下主页按钮开始活动时,最后一个意图就会被重新传递。

作为一种解决方法,我尝试使用onConfiguration更改为在使用intent时保存标志,但由于活动实际上已被破坏而且不仅仅是更改方向,因此无效。最后我做的是在共享首选项中保存该标志,并在每次向singleTop活动发送新意图时将其设置为false,并在每次使用意图额外时将其设置为true。

所以问题很难解决,但我很好奇这样的行为是正常的:(。