[转」notification通过intent传递参数到activity
2016-12-08 17:33
369 查看
原文地址:
http://wangzt-2008.iteye.com/blog/1143555
项目开发中遇到以下问题,需要在一个Activity中显示不同的消息类型,消息通过notification触发,代码如下:
Java代码
Intent intent = new Intent(context,
NotificationDetailsActivity.class);
intent.putExtra(PNConstants.NOTIFICATION_ID, notificationId);
intent.putExtra(PNConstants.NOTIFICATION_TITLE, title);
intent.putExtra(PNConstants.NOTIFICATION_MESSAGE, message);
intent.putExtra(PNConstants.NOTIFICATION_LOGIN_URI, loginUri);
intent.putExtra(PNConstants.NOTIFICATION_URI, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, title, message,
contentIntent);
notificationManager.notify(notificationId, notification);
如此,在接收多条不同类型的消息后,打开不同消息,进入消息详细页面NotificationDetailsActivity显示的始终是最后一条消息内容,而不是根据消息类型分类显示各分类的最后一条。
为解决此问题有两种方法,但是没有找到合理的解释,先记录如下,
方法1:为intent添加不同的Action
Java代码
intent.setAction(""+System.currentTimeMillis());
方法2:PendingIntent.getActivity的第二个参数设为消息类型notificationId,
Java代码
PendingIntent contentIntent = PendingIntent.getActivity(context, notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
相关文章推荐
- [转」notification通过intent传递参数到activity
- notification通过intent传递参数到activity
- Notification通过Intent传递参数getIntent()为null的问题解决
- Activity通过Intent传递对象和参数
- Android-->intent-filter 过滤规则的匹配 (Activity通过Uri传递参数)
- Activity间用Intent和Bundle传递参数
- Activity间用Intent和Bundle传递参数
- Activity间通过Intent传递Bitmap对象
- 关于Activity的启动模式(launchMode) 接收不到Intent传递的参数
- android Activity之间通过Bundle和Intent传递数据
- Activity之间通过Intent传递复杂Customer Object的两种方式
- Intent实现参数的传递以及Activity详解
- Android Activity通过 Intent 传递类对象
- Android:通过Intent在两个Activity之间传递对象(Parcelable)
- Intent跳转activity传递参数实例
- activity 之间通过intent传递TreeMap时出现java.lang.ClassCastException: java.util.HashMap cannot be cast to jav
- Activity 参数传递 Intent
- 通过intent、ClipboardManager在android不同activity之间传递数据
- 使用Intent来启动Activity并传递参数
- 多个Activity如何通过Intent传递Arraylist<object>