104 Stimmen

Wie genau verwendet man Notification.Builder

Ich habe festgestellt, dass ich eine veraltete Methode für Benachrichtigungen verwende (notification.setLatestEventInfo())

Es heißt, dass ich Notification.Builder verwenden soll.

  • Wie benutze ich es?

Wenn ich versuche, eine neue Instanz zu erstellen, wird mir gesagt:

Notification.Builder kann nicht aufgelöst werden zu einem Typen

0voto

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X