0

Ich versuche, eine Klickaktion auf einer Schaltfläche einer benutzerdefinierten Benachrichtigung abzufangen. Ich möchte vermeiden, eine Klasse zu erstellen, die BroadcastReciever erweitert. Dazu schreibe ich in meiner Serviceklasse wie folgt:onClick-Schaltfläche in einer benutzerdefinierten Benachrichtigung

this.registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.v ("Myreceiver", "on click catch") 
     } 
    }, new IntentFilter("MyRemoteViewsBroadcast")); 

PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent("MyRemoteViewsBroadcast"), 0); 
remoteviews.setOnClickPendingIntent(R.I'd. Button, pi); 

Aber es funktioniert nicht. Verliere ich etwas?

Edit: Mit "Es funktioniert nicht" ich meine OnReceive() -Methode wird nie aufgerufen, wenn ich auf die Schaltfläche klicken. (Sorry für die unvollständige Frage)

+1

Was meinst du mit "funktioniert nicht" was genau ist das Problem, das Sie laufen? – ChrisStillwell

+0

Vielen Dank für Ihre schnelle Antwort! Ich meine, dass onReceive() -Methode nicht Aufruf ist, wenn ich klicke, also Log nicht erscheint ... –

Antwort

0

Ich habe gerade erkannt, wo das Problem ist !!!

Der Code funktioniert perfekt !!!

PendingIntent playPendingIntent = PendingIntent.**getService**(getApplicationContext(), NOTIFICATION_ID, new Intent("MyRemoteViewsBroadcast"), 0); 

statt:

PendingIntent playPendingIntent = PendingIntent.**getBroadcast**(getApplicationContext(), NOTIFICATION_ID, new Intent("MyRemoteViewsBroadcast"), 0); 

Dumme Fehler, den ich hatte in meinem eigenen Code geschrieben haben. Ich brauche eine Pause! Entschuldigen Sie die Unannehmlichkeiten.

Verwandte Themen