如何在android中创build多个状态栏通知

我需要创build多个状态栏通知。 当我拉下状态栏,多个通知图标应显示为一个列表。 每个通知图标都应该显示单独的数据以显示在下一页上。我可以怎样做?

我的代码:

public class SimpleNotification extends Activity { private NotificationManager mNotificationManager; private int SIMPLE_NOTFICATION_ID; String str="Hai"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); final Notification notifyDetails = new Notification(R.drawable.android,"New Alert, Click Me!",System.currentTimeMillis()); Button start = (Button)findViewById(R.id.notifyButton); Button cancel = (Button)findViewById(R.id.cancelButton); start.setOnClickListener(new OnClickListener() { public void onClick(View v) { Context context = getApplicationContext(); CharSequence contentTitle = "Notification Details..."; CharSequence contentText = "Browse Android Official Site by clicking me"; Intent notifyIntent = new Intent(SimpleNotification.this, sub.class); Bundle bundle = new Bundle(); bundle.putString("welcome",str); notifyIntent.putExtras(bundle); PendingIntent intent = PendingIntent.getActivity(SimpleNotification.this, 0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK); notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent); mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails); } }); 

在这里,我做了一个通知,但我需要创build多个通知,每个通知应显示每个数据。

Solutions Collecting From Web of "如何在android中创build多个状态栏通知"

你需要传递一个唯一的ID给每个通知。 一旦你点击通知你使用该ID将其删除。

 public class SimpleNotification extends Activity { private NotificationManager mNotificationManager; private int SIMPLE_NOTFICATION_ID_A = 0; private int SIMPLE_NOTFICATION_ID_B = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Button start = (Button) findViewById(R.id.start_button); start.setOnClickListener(new OnClickListener() { public void onClick(View v) { // display A displayNotification("Extra for A", "This is A", "Some text for activity A", MyActivityA.class, SIMPLE_NOTFICATION_ID_A); // display B displayNotification("Extra for B", "This is B", "Some text for activity B", MyActivityB.class, SIMPLE_NOTFICATION_ID_B); } }); } private void displayNotification(String extra, String contentTitle, String contentText, Class<?> cls, int id) { Notification notifyDetails = new Notification(R.drawable.icon, "New Alert!", System.currentTimeMillis()); Intent intent = new Intent(this, cls); intent.putExtra("extra", extra); PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), id, intent, PendingIntent.FLAG_ONE_SHOT); notifyDetails.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent); mNotificationManager.notify(id, notifyDetails); } } 

MyActivityA – 在onCreate()

 ... mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); mNotificationManager.cancel(SIMPLE_NOTFICATION_ID_A); ... 

只需在mNotificationManager.notify(ID, notifyDetails);上使用不同的ID mNotificationManager.notify(ID, notifyDetails);

如果您重复使用该ID,则不会添加新的ID,而是更新旧的ID。

这里是如何使用通知的指南。

你必须指明通知ID,因为这是所有的时间不是解决的办法是,你必须使用ramdom数概念

 Random random = new Random(); int randomNumber = random.nextInt(9999 - 1000) + 1000; notificationManager.notify(randomNumber, notification); 

这个例子展示了如何创build多个通知

如果你想在每个通知上显示不同的数据。 在待处理的Intent使用标志FLAG_UPDATE_CURRENT

 PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

它更新每个通知的数据,而不必每次都重新创build。