我有一个接收来自Google Cloud Messaging的通知的应用程序。 当用户点击通知时,我必须从通知中打开一个特殊窗口,所以这是我的应用程序的一部分:
gcmintentservice:
final Intent i = new Intent(this, MapActivity.class);
i.putExtra("notification",true);
final PendingIntent contentIntent = PendingIntent.getActivity(
this, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
这会增加额外的标志"通知"意图。
MapActivity.class - onResume():
if (getIntent().hasExtra("notification")) {
final Bundle extras = getIntent().getExtras();
notification = extras.getBoolean("notification");
} else {
notification = false;
}
一切正常,除了一个条件 - 当应用程序以某种方式从任务列表中恢复时#34;通知"额外仍然转移到意图。如何避免?
答案 0 :(得分:0)
当应用程序恢复时,它将从暂停状态恢复,因此如果意图在暂停时具有额外功能,则在恢复时它将具有该功能。
您可以做的是在使用它之后从意图中删除额外内容:
getIntent().removeExtra("notification");
当申请恢复时,意图将不再包含"通知"键。
答案 1 :(得分:0)
最后,我找到了解决方案
起初 - https://groups.google.com/forum/#!topic/android-developers/yyd7_8JSwfc 改变来自“最近的”
的意图附加物是不可能的解决方案:
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)!=0) {
Ln.d("launched from history");
notification = false;
}