这似乎是一个常见问题,我已经解决了所有我能找到的相关问题: 活动没有接收新的意图,为什么在 android 通知意图中没有发送额外的数据(整数)?, Notification 通过旧的 Intent Extras , Can't put extras for an intent in notification , android 挂起的意图通知问题; 但仍然无法弄清楚这一点。
问题是一样的。我设置了一个带有 PendingIntent 的通知,其中包含一些额外的信息,但我没有在另一边得到它。
下面是生成通知的代码:
Notification notification = new Notification(R.drawable.icon, getResources().getString(R.string.notification_ticker), System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE;
Intent start_test = new Intent(this, MyActivity.class);
start_test.putExtra("start_test", true);
start_test.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), start_test, PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this, getResources().getString(R.string.notification_title), getResources().getString(R.string.notification_content, expired), pi);
nm.notify(NOTIFICATION_ID, notification);
另一方面:
boolean start_test=getIntent().getBooleanExtra("start_test", false);
捆绑包实际上不存在(getExtras() 返回 null)。
PendingIntent.getActivity
我尝试了( FLAG_UPDATE_CURRENT
, FLAG_CANCEL_CURRENT
, )的不同标志FLAG_ONE_SHOT
,但这些都没有帮助。
如代码所示,我使用 getCurrentMillis 来确保 requestID 发生变化......
还发现在 MyActivity 中,onCreate
并onNewIntent
没有被调用。只有onResume
是。即使FLAG_ACTIVITY_NEW_TASK
设置...?
我错过了一些非常简单的东西吗?