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

152voto

Rabi Punkte 2593

Notification.Builder API 11 oder NotificationCompat.Builder API 1

Dies ist ein Anwendungsbeispiel.

Intent notificationIntent = new Intent(ctx, YourClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(ctx,
        YOUR_PI_REQ_CODE, notificationIntent,
        PendingIntent.FLAG_CANCEL_CURRENT);

NotificationManager nm = (NotificationManager) ctx
        .getSystemService(Context.NOTIFICATION_SERVICE);

Resources res = ctx.getResources();
Notification.Builder builder = new Notification.Builder(ctx);

builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.some_img)
            .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.some_big_img))
            .setTicker(res.getString(R.string.your_ticker))
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)
            .setContentTitle(res.getString(R.string.your_notif_title))
            .setContentText(res.getString(R.string.your_notif_text));
Notification n = builder.build();

nm.notify(YOUR_NOTIF_ID, n);

86voto

Femi Punkte 63590

Dies ist in API 11, also wenn Sie für etwas früheres als 3.0 entwickeln, sollten Sie weiterhin die alte API verwenden.

Aktualisierung: Die NotificationCompat.Builder-Klasse wurde dem Support-Paket hinzugefügt, sodass wir diese verwenden können, um API-Level v4 und höher zu unterstützen:

http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html

70voto

ANemati Punkte 4696

Zusätzlich zur ausgewählten Antwort hier ist einige Beispielscode für die NotificationCompat.Builder-Klasse von Source Tricks :

// Benachrichtigung für die laufende App hinzufügen  

    private void addNotification() {

    NotificationCompat.Builder builder =  
            new NotificationCompat.Builder(this)  
            .setSmallIcon(R.drawable.ic_launcher)  
            .setContentTitle("Beispiel für Benachrichtigungen")  
            .setContentText("Dies ist eine Testbenachrichtigung");  

    Intent notificationIntent = new Intent(this, MainActivity.class);  
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,   
            PendingIntent.FLAG_UPDATE_CURRENT);  
    builder.setContentIntent(contentIntent);  

    // Als Benachrichtigung hinzufügen  
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
    manager.notify(FM_NOTIFICATION_ID, builder.build());  
}  

// Benachrichtigung entfernen  
private void removeNotification() {  
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
    manager.cancel(FM_NOTIFICATION_ID);  
}

4voto

Ye Myat Min Punkte 1464

Der Notification Builder ist ausschließlich für Android API Level 11 und höher (Android 3.0 und höher) bestimmt.

Daher sollten Sie, wenn Sie keine Honeycomb-Tablets ansprechen, den Notification Builder nicht verwenden, sondern ältere Methoden zur Benachrichtigungserstellung wie das folgende Beispiel verwenden.

3voto

Amit Vaghela Punkte 22124

Aktualisierung android-N (März 2016)

Bitte besuchen Sie den Link zu den Benachrichtigungs-Updates für weitere Details.

  • Direkte Antwort
  • Gebündelte Benachrichtigungen
  • Benutzerdefinierte Ansichten

Android N ermöglicht es auch, ähnliche Benachrichtigungen zu bündeln, um als eine einzelne Benachrichtigung angezeigt zu werden. Dafür nutzt Android N die bestehende NotificationCompat.Builder.setGroup()-Methode. Benutzer können jede der Benachrichtigungen erweitern und Aktionen wie Antworten und Ablehnen für jede Benachrichtigung einzeln im Benachrichtigungsbereich durchführen.

Das ist ein vorbestehendes Beispiel, das einen einfachen Dienst zeigt, der Benachrichtigungen mit NotificationCompat sendet. Jedes ungelesene Gespräch eines Benutzers wird als separate Benachrichtigung gesendet.

Dieses Beispiel wurde aktualisiert, um von den neuen Benachrichtigungsfunktionen in Android N zu profitieren.

Beispielcode.

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