Selbständiges Beispiel
Gleiche Technik wie in dieser Antwort, aber:
- selbständig: kopieren und einfügen und es wird kompilieren und ausgeführt
- mit einem Button, mit dem Sie beliebig viele Benachrichtigungen generieren und mit Intent und Benachrichtigungs-IDs spielen können
Quelle:
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
private int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Button button = new Button(this);
button.setText("klicke mich");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Notification notification = new Notification.Builder(Main.this)
/* Machen Sie die App auf, wenn Sie auf die Benachrichtigung klicken. */
.setContentIntent(PendingIntent.getActivity(
Main.this,
Main.this.i,
new Intent(Main.this, Main.class),
PendingIntent.FLAG_CANCEL_CURRENT))
.setContentTitle("Titel")
.setAutoCancel(true)
.setContentText(String.format("id = %d", Main.this.i))
// Ab Android 5 zählt nur der Alphakanal des Bildes.
// https://stackoverflow.com/a/35278871/895245
// Ressourcen von `android.R.drawable` scheinen alle geeignet zu sein.
.setSmallIcon(android.R.drawable.star_on)
// Farbe des Hintergrunds, auf dem das Alphabild weiß gezeichnet wird.
.setColor(Color.RED)
.build();
final NotificationManager notificationManager =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(Main.this.i, notification);
// Würde die gleiche ID zweimal verwendet, würde die zweite Benachrichtigung die erste ersetzen.
//notificationManager.notify(0, notification);
Main.this.i++;
}
});
this.setContentView(button);
}
}
Getestet in Android 22.