Ich muss mehrere Statusbar-Benachrichtigungen erstellen. Wenn ich die Statusleiste herunterziehe, sollten mehrere Benachrichtigungssymbole als Liste angezeigt werden. Jedes Benachrichtigungssymbol sollte separate Daten enthalten, die auf der nächsten Seite angezeigt werden sollen. Wie kann ich das tun?
Mein Code:
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);
}
});
Hier habe ich eine Benachrichtigung gemacht, aber ich muss mehrere Benachrichtigungen erstellen, dass jede Benachrichtigung alle Daten anzeigen soll.
Sie müssen jeder Benachrichtigung eine eindeutige ID übergeben. Nachdem Sie auf die Benachrichtigung geklickt haben, verwenden Sie diese ID, um sie zu entfernen.
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 - in onCreate ()
...
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancel(SIMPLE_NOTFICATION_ID_A);
...
Verwenden Sie einfach verschiedene IDs für mNotificationManager.notify(ID, notifyDetails);
Wenn Sie die ID erneut verwenden, wird keine neue hinzugefügt, sondern die alte wird aktualisiert.
Hier finden Sie eine Anleitung zur Verwendung von Benachrichtigungen .
sie müssen die Benachrichtigungs-ID ändern, da es die ganze Zeit nicht die Lösung ist, dass Sie random number concept verwenden
Random random = new Random();
int randomNumber = random.nextInt(9999 - 1000) + 1000;
notificationManager.notify(randomNumber, notification);
Dieses Beispiel zeigt, wie Sie mehrere Benachrichtigungen erstellen
Wenn Sie für jede Benachrichtigung unterschiedliche Daten anzeigen möchten. Verwenden Sie das Flag FLAG_UPDATE_CURRENT
in Ihrer anstehenden Intent
.
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Es aktualisiert die Daten bei jeder Benachrichtigung, ohne sie jedes Mal neu erstellen zu müssen.