无法删除额外的意图!

时间:2011-07-05 15:14:46

标签: android

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

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(),同样的行为。这就像发射器坚持原始意图并不断重复使用它。

由于

1 个答案:

答案 0 :(得分:0)

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

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