我正在创建一个通知用于通知托盘。我像这样指定了一个点击意图:
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()));
MyActivity类在存在"foo"参数的情况下可以成功启动。然而,我无法将其后面的额外内容去掉 - 似乎它会一直保留在Intent中:
// MyActivity
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// please go away..
intent.removeExtra("foo");
getIntent().removeExtra("foo");
}
遍历 Intent 的键时会发现 "foo" 不再存在。但是,如果我将 Activity 放到后台,然后再次将其调回前台,则 "foo" 参数又会出现。
有人知道如何真正消除它吗?我也尝试了调用 setIntent(),但是行为一样。就像启动器一直持有原始 Intent 并不断重复使用它。
谢谢