私はfcmを使用してアプリケーションで通知を配信しています。ユーザーが通知をクリックするたびにMsgViewActivityを起動します。これは、アプリがフォアグラウンドにあるときにはうまく動作しますが、アプリが実行されていないときは、私を主な活動に連れて行きます。また、データメッセージを使用しているので、onMessageRecivedはバックグラウンドでも呼び出されることに注意してください。FCMサービスからアクティビティを起動できません
はここにあなたが両方notification: {..}
とdata: {..}
ペイロードを持つメッセージを使用しているあなたの例からFirebaseMessagingService.class
public class FirebaseMessagingSer extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.mipmap.ic_launcher);
Intent intent = new Intent(this, MsgViewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
if(remoteMessage.getData().size()>0) {
String id = remoteMessage.getData().get("id");
Bundle bundle = new Bundle();
bundle.putString("id",id);
intent.putExtras(bundle);
}
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle("FCM NOTIFICATION");
notificationBuilder.setContentText(remoteMessage.getNotification().getBody());
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
notificationBuilder.setLargeIcon(bmp);
notificationBuilder.setAutoCancel(true);
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,notificationBuilder.build());
}
}