=======
下面是转载的文章。
同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了。
还是不太明白或者编码实现不了的可以加我QQ。
博客很少上了。
========
注意通知中.getActivity( context, int requestCode, intent, int flags)这几个参数:
context | The Context in which this PendingIntent should start the activity. |
---|---|
requestCode | Private request code for the sender (currently not used). |
intents | Array of Intents of the activities to be launched. |
flags | May be , , , , or any of the flags as supported by to control which unspecified parts of the intent that can be supplied when the actual send happens. |
正确是使用方法是:PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT); requestCode来标识不同通知,flags中的PendingIntent.FLAG_UPDATE_CURRENT用来使用后面通知更新前面通知,使用这个flag要注意,intent一定不能为null,否则会报空指针错误。
另外,当我们把Activity 启动模式设置为 singleTask 之后 当我们下次 再去 用Intent 启动 这个 Activity 的时候 就不会去调用 onCreate方法 也不能在onRestart()方法中取,而是去调用onNewIntent()方法 然后把Intent中的数据传给它;
<activityandroid:name="TestActivity" android:launchMode="singleTask"/> 示例:
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent);int hasMsgNotifyFlag = 0;if(intent!=null){ Bundle bundle = intent.getExtras();if(bundle!=null){ hasMsgNotifyFlag = bundle.getInt("id");}Log.i( "main tab msg=>", hasMsgNotifyFlag + "");}}
/**
* 添加一个notification */ public void addNotification(Context context, int id, boolean flag){ NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.icon, "hello,here", System.currentTimeMillis()); notification.flags = Notification.FLAG_AUTO_CANCEL; Intent intent = new Intent(context, TestActivity.class); Bundle bundle = new Bundle(); bundle.putInt("id", id); intent.putExtras(bundle); PendingIntent contentIntent = PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(context, "有新消息", id + "", contentIntent); nm.notify(id, notification); }