Ich habe eine Anwendung, die im Grunde eine Webview und GCM-Benachrichtigungen ist. Ich möchte Folgendes erreichen: Wenn der Benutzer in der App ist und eine Benachrichtigung erhält, wenn er auf die Benachrichtigung klickt, möchte ich im Webview die in der Benachrichtigung angegebene URL laden.Send Broadcast bei Benachrichtigung klicken
Ich versuche, dies durch Verwendung von Broadcast-Empfänger zu erreichen, aber es funktioniert nicht.
ich dynamisch den Empfänger im MainActivity registrieren:
private void registerNotificationReceiver() {
final IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_LOAD_URL_FROM_NOTIFICATION);
Log.i(TAG, "registerNotificationReceiver()");
this.receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "notification received");
}
};
super.registerReceiver(this.receiver, filter);
}
Und im GCM Zuhörer Ich verwende PendingIntent.getBroadast():
final Intent broadcastIntent = new Intent(MainActivity.ACTION_LOAD_URL_FROM_NOTIFICATION);
PendingIntent intent = PendingIntent.getBroadcast(getApplicationContext(), 0, broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notificationBuilder.setContentIntent(intent);
notification = notificationBuilder.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, notification);
Ich verstehe nicht, warum OnReceive in Die MainActivity-Klasse wird nicht aufgerufen. Die Nachricht "Benachrichtigung erhalten" wird nicht angezeigt. Können Sie mir helfen? Danke :)
Ja getan werden, es funktioniert jetzt, wenn der Empfänger im Manifest definiert ist. Danke :) Um mein Ziel zu erreichen, musste ich einen anderen Empfänger in der MainActivity verwenden, wo ich die URL lade. Die Übertragung zu ihm wird von dem ersten Empfänger gesendet (derjenige, den ich im Manifest definiert habe). Es funktioniert jetzt, aber ich mag diesen Ansatz irgendwie nicht. Es sieht für mich wie eine schlechte Übung aus ... – definera
es ist die * Pflicht * Praxis ... Gott Google sagt so ... – eduyayo