0Pricing
Android Academy · Lektion

Push-Benachrichtigungen

Senden Sie Push-Benachrichtigungen über Firebase Cloud Messaging. Richten Sie FCM ein, erstellen Sie Benachrichtigungskanäle, bauen Sie Benachrichtigungen mit Aktionen und behandeln Sie die Zustellung im Vorder- und Hintergrund.

Push-Benachrichtigungen ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 6. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 6 Lektionen.

Was sind Push-Benachrichtigungen?

Push-Benachrichtigungen ermöglichen es Ihrem Server, Benutzern Nachrichten zu senden, auch wenn die App nicht im Vordergrund ausgeführt wird. Häufige Anwendungsfälle:

  • Benachrichtigungen über neue Nachrichten
  • Aktualisierungen des Bestellstatus
  • Dringende Nachrichten
  • Erinnerungen und Werbeaktionen

Unter Android ist Firebase Cloud Messaging (FCM) der Standarddienst für die Zustellung von Push-Nachrichten.

FCM-Überblick

Ablauf von Firebase Cloud Messaging (FCM):

  1. Die App registriert sich beim ersten Start bei FCM → erhält ein Geräte-Token
  2. Die App sendet den Token an Ihren Server
  3. Wenn Sie eine Push-Nachricht senden möchten, übermittelt Ihr Server eine Nachricht an FCM
  4. FCM stellt sie dem Gerät zu

FCM ist kostenlos, zuverlässig und funktioniert auch, wenn die App beendet wurde.

Firebase zum Projekt hinzufügen

Schritte zum Hinzufügen von Firebase:

  1. Öffnen Sie die Firebase Console → Add project → Add Android app
  2. Registrieren Sie Ihre App mit dem Paketnamen
  3. Laden Sie google-services.json herunter und legen Sie die Datei in app/ ab
  4. Fügen Sie Plugins und Abhängigkeiten hinzu
// project/build.gradle:
buildscript {
    dependencies { classpath 'com.google.gms:google-services:4.4.1' }
}

// app/build.gradle:
plugins { id 'com.google.gms.google-services' }

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.4')
    implementation 'com.google.firebase:firebase-messaging-ktx'
}

FCM-Berechtigung (Android 13+)

Ab Android 13 (API 33) müssen Sie die Berechtigung POST_NOTIFICATIONS zur Laufzeit anfordern — genau wie eine gefährliche Berechtigung:

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

// In Activity (Android 13+):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    requestPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
}

FirebaseMessagingService

Erstellen Sie einen Service, der eingehende FCM-Nachrichten und Token-Aktualisierungen verarbeitet:

class MyFirebaseService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        // Send token to your backend to enable push delivery
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        val title = message.notification?.title ?: "New Message"
        val body  = message.notification?.body  ?: ""
        showNotification(title, body)
    }
}

Service im Manifest registrieren

Deklarieren Sie den Service in AndroidManifest.xml:

<service
    android:name=".MyFirebaseService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Benachrichtigungskanäle (Android 8+)

Seit Android 8 (Oreo) müssen Benachrichtigungen einem Kanal zugewiesen werden. Benutzer können Ton, Vibration und Wichtigkeit für jeden Kanal steuern:

fun createNotificationChannel(context: Context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val channel = NotificationChannel(
            "messages_channel",           // channel ID
            "Messages",                   // user-visible name
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Incoming message notifications"
            enableVibration(true)
        }
        val manager = context.getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(channel)
    }
}

Benachrichtigung erstellen und anzeigen

Verwenden Sie NotificationCompat.Builder, damit Ihre App mit verschiedenen Android-Versionen kompatibel ist:

fun showNotification(context: Context, title: String, body: String) {
    val intent = Intent(context, MainActivity::class.java)
    val pendingIntent = PendingIntent.getActivity(
        context, 0, intent,
        PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
    )

    val notification = NotificationCompat.Builder(context, "messages_channel")
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle(title)
        .setContentText(body)
        .setPriority(NotificationCompat.PRIORITY_HIGH)
        .setAutoCancel(true)             // dismiss on tap
        .setContentIntent(pendingIntent) // open app on tap
        .build()

    NotificationManagerCompat.from(context)
        .notify(System.currentTimeMillis().toInt(), notification)
}

Benachrichtigung mit Aktionen

Fügen Sie Benachrichtigungen Aktionstasten hinzu, damit Benutzer handeln können, ohne die App zu öffnen:

val replyIntent = Intent(context, ReplyReceiver::class.java)
val replyPending = PendingIntent.getBroadcast(
    context, 1, replyIntent,
    PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val notification = NotificationCompat.Builder(context, "messages_channel")
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("New message from Alice")
    .setContentText("Hey, are you coming?")
    .addAction(R.drawable.ic_reply, "Reply", replyPending)
    .addAction(R.drawable.ic_dismiss, "Dismiss", null)
    .build()

Verarbeitung im Vorder- und Hintergrund

FCM verhält sich je nach App-Zustand unterschiedlich:

  • App im Vordergrund — onMessageReceived() wird aufgerufen; Sie erstellen und zeigen die Benachrichtigung selbst an
  • App im Hintergrund oder beendet — FCM zeigt die Benachrichtigung aus der notification-Nutzlast automatisch an; onMessageReceived wird NICHT aufgerufen

Legen Sie zusätzliche Daten in die data-Nutzlast (nicht in notification), damit Sie sie immer in onMessageReceived empfangen.

FCM-Token abrufen

Rufen Sie den aktuellen FCM-Token ab, um ihn an Ihren Server zu senden:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w("FCM", "Fetching token failed", task.exception)
        return@addOnCompleteListener
    }
    val token = task.result
    Log.d("FCM", "Token: $token")
    // Send token to your server
    sendTokenToServer(token)
}

Kurzer Check

Was geschieht, wenn sich Ihre App im Hintergrund befindet und FCM eine Nachricht mit einer „notification“-Nutzlast zustellt?

Zusammenfassung: Push-Benachrichtigungen

Push-Benachrichtigungen mit FCM unter Android:

  • Fügen Sie Firebase, google-services.json und firebase-messaging-ktx hinzu
  • Fordern Sie POST_NOTIFICATIONS unter Android 13+ an
  • Erstellen Sie FirebaseMessagingService → onNewToken + onMessageReceived
  • Erstellen Sie einen NotificationChannel für Android 8+
  • Erstellen Sie Benachrichtigungen mit NotificationCompat.Builder
  • Verwenden Sie die data-Nutzlast, um sie immer in onMessageReceived zu empfangen

Als Nächstes: Planen Sie Hintergrundaufgaben mit WorkManager.

Häufig gestellte Fragen

Ist die Lektion „Push-Benachrichtigungen“ kostenlos?

Ja — der vollständige Text von „Push-Benachrichtigungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 6 Lektionen.

Was lerne ich in „Push-Benachrichtigungen“?

Senden Sie Push-Benachrichtigungen über Firebase Cloud Messaging. Richten Sie FCM ein, erstellen Sie Benachrichtigungskanäle, bauen Sie Benachrichtigungen mit Aktionen und behandeln Sie die Zustellun… Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 6.

Wie lange dauert die Lektion „Push-Benachrichtigungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Retrofit und REST-APIs
  2. Bilder mit Coil laden
  3. Fehlerbehandlung und UX
  4. Push-Benachrichtigungen
  5. WorkManager und Hintergrundaufgaben
  6. Veröffentlichen im Play Store
← Zurück zu Android Academy