2016-09-09 1 views
1

Ich möchte, dass der Anwendungsprozess beendet wird, wenn der Benutzer die Benachrichtigung vom Bildschirm verschiebt oder auf die Schaltfläche zum Löschen aller Benachrichtigungen klickt.Prozess beenden, wenn die Benachrichtigung gelöscht wird

Gibt es eine Möglichkeit, dies zu implementieren?

+1

prüfen diese Antwort http://stackoverflow.com/questions/14671453/catch-on-swipe-to-dismiss-event –

Antwort

0

DeleteIntent: DeleteIntent ist ein PendingIntent-Objekt, das einer Benachrichtigung zugeordnet werden kann und beim Löschen der Benachrichtigung ausgelöst wird.

Sie können den ausstehenden Intent für einen Broadcast-Empfänger festlegen und dann alle gewünschten Aktionen ausführen.

Intent intent = new Intent(this, MyBroadcastReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0); 
    Builder builder = new Notification.Builder(this): 
..... code for your notification 
    builder.setDeleteIntent(pendingIntent); 

MyBroadcastReceiver

public class MyBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     //code to kill app 
     c̶o̶n̶t̶e̶x̶t̶.̶f̶i̶n̶i̶s̶h̶A̶f̶f̶i̶n̶i̶t̶y̶(̶)̶;̶ 
     ActivityCompat.finishAffinity((Activity)context); 
    } 
} 

Referenz: catch on swipe notification event

+0

Wo 'finishAffinity() 'definiert ist, löst der Empfänger die Methode nicht auf. Ich habe die Alternativen [hier] (http://stackoverflow.com/questions/26134560/close-application-from-broadcast-receiver) auch versucht, aber keiner von ihnen funktioniert – Devansh

+0

überprüfen Sie meine bearbeitete Antwort aus –

Verwandte Themen