So stornieren Sie eine Vordergrund-Dienst über die Meldung (streichen entlassen) oder löschen Sie alle Benachrichtigungen?

Ich bin derzeit auf der Schaffung einer Vorder-Dienst mit einer Meldung, erscheint in der notification bar wenn der Dienst gestartet wird. Wenn der Dienst beendet wird, wird die Meldung abgewiesen. Meine Frage ist, gibt es eine Möglichkeit, den Dienst zu beenden, wenn "lösche alle Benachrichtigungen" oder verwerfen der Benachrichtigung (wischen) Auftritt?

Aktualisiert, um die Umsetzung der Mitteilung:

public int onStartCommand(Intent intent, int flags, int startId)
{   
    Log.d(CLASS, "onStartCommand service started.");

    if (getString(R.string.service_start_action) == intent.getAction())
    {
        Intent intentForeground = new Intent(this, ServiceMain.class)
            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);    
        PendingIntent pendIntent = PendingIntent.getActivity(getApplicationContext(), 0, intentForeground, 0);      
        Notification notification;
        Notification.Builder builder = new Notification.Builder(getApplicationContext())
            .setSmallIcon(android.R.drawable.btn_star)
            .setTicker("Service started...")
            .setContentIntent(pendIntent)
            .setDefaults(Notification.DEFAULT_ALL)
            .setOnlyAlertOnce(true)
            .setOngoing(false);
        notification = builder.build();
        notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;

        startForeground(SERV_NOTIFY, notification);
        player.start();
    }
    else
    {
        Log.d(CLASS, "onStartCommand unable to identify acition.");
    }

    return START_STICKY;        
}
  • Haben Sie einen Blick auf dieses Beispiel von Google: github.com/googlesamples/android-ActiveNotifications. Es zeigt, wie zu hören ist, entlassen Benachrichtigung, sowie eine ganze Gruppe von Benachrichtigungen.
  • Soweit ich weiß, kann man nicht 'erstellen' ein Vordergrund-service ohne eine Benachrichtigung. Android benötigt, da Sie nicht wollen, dass Sie die Laufenden Dienste an hinter der Szene, ohne dass der Benutzer es zu wissen. Entfernen Sie Benachrichtigungen, wenn Ihre Aktivität zerstört worden ist und Ihren Dienst im Vordergrund, rechtfertigt eine Benachrichtigung, Sie können nicht einfach kündigen. Abbrechen die Meldung kann nur erfolgen durch aufheben der Vorder-Dienst selbst über den Aufruf '.stopForeground(true)' wird der Boolesche parameter gibt an, ob Sie möchten, stoppen Sie das Vordergrund-zusammen mit der Benachrichtigung.
InformationsquelleAutor d.moncada | 2012-10-13
Schreibe einen Kommentar