0

Ich habe eine Absicht, die ich so initiieren:Android - hier sowohl Klasse und Aktion für Vorsatz

notificationIntent = new Intent(context, HomeActivity.class); 

Diese Absicht eine laufende Benachrichtigung angebracht ist.

nun zusätzlich zu der Klasse geöffnet, wenn die Absicht klicken, möchte ich eine Aktion Zeichenfolge auf die Absicht an, so dass, wenn die Benachrichtigung meiner benutzerdefinierten geklickt BroadcastReceiver, die auf die gleiche Aktion String hört auslösen .

notificationIntent.setAction(context.getString(R.string.notification_clicked_action_string)); 

Problem ist, aus irgendeinem Grund wird die BroadcastReceiver nicht genannt, und ich habe andere BroadcastReceiver, die ich in problematischer Weise wie diese registriert und sie funktionieren gut.

Also, es ist ein Problem, in der Absicht, sowohl eine Klasse und eine Wirkung zu haben?

Antwort

1

Also ist es ein Problem, sowohl eine Klasse als auch eine Aktion in einer Absicht zu haben?

Nein, das ist völlig in Ordnung.

Wenn Sie jedoch kein sehr seltsames Namensgebungssystem haben, ist HomeActivity eine Aktivität. Das bedeutet, dass new Intent(context, HomeActivity.class) diese Aktivität identifiziert und Sie dies hoffentlich mit PendingIntent.getActivity() verwenden. Sie können keine BroadcastReceiver Antwort auf startActivity() haben, die aufgerufen wird, wenn die PendingIntent aufgerufen wird.

+0

ohh ich sehe, also gibt es eine Möglichkeit, eine Sendung zu senden, wenn Sie auf die Benachrichtigung klicken? –

+1

@OfekAgmon: Sicher. Verwenden Sie einen 'Intent', der dem' BroadcastReceiver' entspricht, und verwenden Sie 'PendingIntent.getBroadcast()'. Was du * nicht * tun kannst, ist ein * single * 'PendingIntent', der sowohl eine Aktivität als auch einen Empfänger aufruft. Sie könnten Ihre Aktivität jedoch in 'onCreate()' senden lassen. – CommonsWare

+0

Ja, ich habe genau das gemacht. Vielen Dank! –