当前位置:首页 > Android notification PendingIntent通知栏传值无效的解决方法

Android notification PendingIntent通知栏传值无效的解决方法

点击次数:6817  更新日期:2015-07-04

在点击通知栏消息,往应用程序中传递数据时,发现传递的值始终不变。解决方法如下:

PendingIntent pIntent = PendingIntent.getActivity(context, iUniqueId, intent, 0);

方法中的第二个参数 requestcode传入一个随机数,并且intent的flag设置为Intent.FLAG_ACTIVITY_CLEAR_TOP


代码如下:

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

Intent intent = new Intent(MainActivity.this,MainActivity.class);

intent.putExtra("msgid", msgid);

PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, (int) (Math.random() * 1000) + 1,intent, Intent.FLAG_ACTIVITY_CLEAR_TOP);

// 构建一个通知对象(需要传递的参数有三个,分别是图标,标题和 时间)

Notification notification = new Notification.Builder(

MainActivity.this).setContentTitle(_msg[0])

.setContentText(_msg[1])

.setSmallIcon(R.drawable.defaultuser)

.setAutoCancel(true)

.setDefaults(Notification.DEFAULT_SOUND)

.setContentIntent(pendingIntent).build();

manager.notify((int) (Math.random() * 1000) + 1, notification);