无法删除额外的意图!

我正在为通知托盘创建通知。 我正在指定一个像这样的点击意图:

Intent intent = new Intent(context, MyActivity.class); intent.putExtra("foo", true); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.setData(Uri.parse("" + System.currentTimeMillis())); 

使用“foo”参数,MyActivity类可以正常启动。 然而,我无法在之后摆脱那些额外的东西 – 它似乎在意图中持续存在:

 // MyActivity public void onNewIntent(Intent intent) { super.onNewIntent(intent); // please go away.. intent.removeExtra("foo"); getIntent().removeExtra("foo"); } 

迭代意图的键表明“foo”不再存在。 但是如果我对活动进行后台处理,然后再次将其置于前台,则会再次出现“foo”参数。

谁知道如何真正摆脱它? 我也试过调用setIntent(),同样的行为。 这就像发射器坚持原始意图并不断重复使用它。

谢谢

这正是Android正在做的事情。 修改onNewIntent方法中的intent参数不会影响通知系统的存储意图。 您应该创建一个新的Intent并将其存储在您的活动中,与其他任何数据一样保存和恢复。

编辑:如果您不需要重复使用intent本身,则分别存储相关数据可能更有意义。