发通知 PendingIntent 中Intent 内容没有更新
<activity android:name="SkyfileActivity" android:launchMode="singleTask" />当我们把Activity 启动模式设置为 singleTask 之后 当我们下次 再去 用Intent 启动 这个 Activity 的时候 就不会去调用 onCreate方法 而是去调用onNewIntent()方法 然后把Intent中的数据传给它 , 前几天遇到的问题是 当我 发一个通知给状态栏 然后点击这个通知 自然会执行 PendingIntent 里边的Intent。 但是 在Activity那边的 onNewIntent()方法里边 得到的数据 不是最新的 也就是说 是 第一次的 以后 不管我怎么点通知 它都 是 第一次点击通知得到的数据,当以后再点击通知的时候其实 数据已经变了 但是 onNewIntent()方法总是得不到最新的数据, 无语了很久, 去 农民伯伯翻译组 发问得解 需要给 PendingIntent 加一个 FLAG
PendingIntent contentIntentBegin = PendingIntent.getActivity(notificationContext, 0, inStart, PendingIntent.FLAG_UPDATE_CURRENT);
public void showNotiMessageBegin(String message, int requestCode,String itemid) {notification = new Notification(R.drawable.skyfile_upload_noti,message, System.currentTimeMillis());if (requestCode == 1 && notification.contentIntent == null) {int index = itemid.lastIndexOf("/");final String backPath1 = itemid.substring(0, index == 0 ? 1 : index); Intent inStart = new Intent(notificationContext, SkyfileActivity.class);inStart.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);inStart.setData(Uri.parse(MetaDataView.class.getName()));inStart.putExtra(MetaDataView.BUNDLE_PATH, backPath1);PendingIntent contentIntentBegin = PendingIntent.getActivity(notificationContext, 0, inStart, PendingIntent.FLAG_UPDATE_CURRENT);notification.contentIntent = contentIntentBegin;notification.flags |= Notification.FLAG_AUTO_CANCEL;notification.setLatestEventInfo(notificationContext,UPLOATTITLE, message, contentIntentBegin);notificationMgr.notify(1, notification);} else {notification.contentIntent.cancel();}}