0
アプリが実行中、バックグラウンド中、または強制終了中にfcm通知を処理するパターンを探しています。実行中のFCM通知の処理と打ち切り
私たちのアプリはログインプロセスを備えているため、アプリが起動していないときに通知がランチャーを開く必要がありますが、アプリが起動しているときに通知をクリックしたときにアクティビティをプッシュしたいだけです。
私が推測する最良の方法は、スタックの一番上のアクティビティに配信されるか、Launch-Activityに配信されるContentIntentです。
私の現在のコードは常に、アプリケーションが実行中であるかどうかに関係なく、TaskStackBuilderでアプリケーションを再起動します。
私のコードのサンプル:、androidManifestにsingleInstanceとしてあなたMyProfileActivityのlaunchModeを設定
<activity
android:name=".MyProfileActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
、ユーザーが通知をクリックしたときに、それはあなたのバックグラウンド活性をrelaunchesしようとしない
resultIntent = new Intent(this, MyProfileActivity.class);
resultIntent.putExtra(ActivityUtil.KEY_IMAGE_URL, SharedPref.getUserImage(this));
resultIntent.putExtra(KEY_NOTIFICATION_ID, notificationID);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(SetDetailReworked.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "...")
.setLargeIcon(getBitmapFromUrl(images[UI.GetDensityInt(this)]))
.setSmallIcon(R.drawable.bar_icon)
.setContentTitle(getString(R.string.push_notification_Title))
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(resultPendingIntent);
Notification not = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(ID, not);