私はこの問題に苦しんでいます:私はいくつかの通知を持っており、アプリケーションがすでに実行中であってもインテントエクストラをアクティビティに渡したいと思います。アクティビティが実行されている場合、インテントエキストラを取得
S.O.私のために動作しませんでした、追加のように:誰かが提案のように
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
:
android:launchMode="singleTop"
をマニフェストに、私はまた、これを使用しています。
私のコードはこれです:アクティビティ内
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(NotificationService.this);
mBuilder.setSmallIcon(R.mipmap.ic_launcher);
mBuilder.setContentTitle("New website change.");
mBuilder.setContentText("Changed: " + url);
Intent notificationIntent = new Intent(getContext(), MainActivity.class);
Bundle b = new Bundle();
b.putString("key", url);
notificationIntent.putExtras(b);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(getContext(), id, notificationIntent, 0);
mBuilder.setContentIntent(intent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NotificationService.this.NOTIFICATION_SERVICE);
mNotificationManager.notify(id, mBuilder.build());
そして:
Bundle b = getIntent().getExtras();
if(b != null) {
url = b.getString("key");
editText.setText(url);
webView.loadUrl(url);
webView.requestFocus();
}
すべてのヘルプは大歓迎だろう、私は、オープンソースのおかげで、このアプリのコードをリリースします。
達成するためにanted。 –
私は通知にいくつかのURLを持っており、私はwebviewを持っているアクティビティでそれを開きたいと思います。アクティビティが実行されていない場合(つまり、別のアクティビティが実行されている場合)、通知はそのエキストラを送信できますが、アクティビティがフォアグラウンドにある場合は、エクストラを取得できません(この場合はURL)。 –
http://stackoverflow.com/questions/40021484/fcm-notification-using-android-studio/40021597#comment67322451_40021597 –