我的应用程序中有2个活动,我希望活动X弹出一个通知 - 一旦点击活动Y打开并从通知中读取参数。
所以我写了这个:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
CharSequence tickerText = NOTIFY_TICKER_NAME;
long when = System.currentTimeMillis();
Notification notification = new Notification(R.drawable.icon, tickerText, when);
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
Intent notificationIntent = new Intent(this, PopTask.class);
notificationIntent.putExtra("task", "http://www.google.com");
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
mNotificationManager.notify(1, notification);
问题是,当我尝试阅读附加内容时 - 我得到null。
我该怎么办?
由于
答案 0 :(得分:3)
oshafran,
为了让putExtra()
在这种情况下工作,您还必须使用setAction()
。我不完全确定为什么会这样......似乎有些怪癖。 setAction()
中传递的值可以是任何值。
尝试:
Intent notificationIntent = new Intent(this, PopTask.class);
notificationIntent.putExtra("task", "http://www.google.com");
notificationIntent.setAction("MyIntent");
答案 1 :(得分:0)
可能更好的解决方案是在创建PendingIntent时使用PendingIntent.FLAG_UPDATE_CURRENT
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(YOUR_EXTRA_KEY, "Your Extra");
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);