1

我用这样的活动创建一个通知,

 public static void buildNotification(Context context, int id, String notiContent){
          NotificationManager notificationManager 
          = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
          NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

          Intent intent = new Intent(context, NotifyActivity.class);
          intent.putExtra("notiContent", notiContent);
          intent.putExtra("notiId", id);
          intent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);


          PendingIntent pendingIntent 
          = PendingIntent.getActivity(context, 0, intent, 0);

          builder
          .setSmallIcon(R.drawable.ic_launcher)
          .setContentTitle("")
          .setContentText(notiContent)
          .setContentInfo(""+Math.random())
          .setTicker("!")
          .setLights(0xFFFF0000, 500, 500) //setLights (int argb, int onMs, int offMs)
          .setContentIntent(pendingIntent)
          .setAutoCancel(true);

          Notification notification = builder.build();
          nc++;
          notificationManager.notify(nc, notification);
 }

但是该onCreate方法总是获得相同的额外数据(notiId)。

如何强制重新创建 Intent ?还是有其他方法可以将额外数据传递给活动?

4

2 回答 2

1

您可以使用onResume()方法并使用intent.setAction("intentAction");并获取它onResume()

于 2012-12-20T13:41:24.130 回答
0

SharedPreferencesonPause()您想要获取以下更新值的活动中使用notid

 @Override
protected void onPause() 
{
  super.onPause(); 
  SharedPreferences preferences = getSharedPreferences("sharedPrefs", 0);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("notid", "Your notid value"); // value to store
  editor.commit();    
}

并得到notid的值如下:

  SharedPreferences preferences = getSharedPreferences("sharedPrefs", 0);
  String notid= preferences.getString("notid");
于 2012-12-20T13:42:24.220 回答