场景是: 在清单中声明的具有singleTop的活动。使用一些额外功能调用此活动。我能够清除意图数据并能够翻转屏幕,而不需要调用原始意图...
问题是当活动被系统杀死并且用户返回到此活动时,它将使用用于创建活动的原始意图重新启动。
如何删除此内容?我尝试用新的Intent从内部开始相同的活动,但没有运气......我也使用了各种标志。
答案 0 :(得分:8)
事实证明,没有一种正确的方法来清除ActivityManager中的意图数据。解决此错误的唯一方法是在清除额外内容时保持标记状态。请参阅以下关于保持旗帜的帖子。 https://groups.google.com/forum/#!topic/android-developers/vrLdM5mKeoY
答案 1 :(得分:1)
我正在发送待处理的意图作为警报,当我的应用程序启动时,我可能会收到不同的警报,因此旗帜状态不适合我。
我确实喜欢这个:
我发送带有id的意图,例如intent.setAction(“MyIntent”+ System.getCurrentTimeinMillis); 将此密钥存储为BD或共享首选项中的引用。
当你收到newIntent的意图时,你要求bd或共享的prefs是intent.getAction(),然后清除引用。