Открытое действие по щелчку уведомления - проблема с флагом намерения - PullRequest
0 голосов
/ 08 ноября 2018

Я создаю приложение для Android. Я настроил систему уведомлений, чтобы открывать определенные действия / классы по щелчку уведомлений. Когда мое приложение полностью закрыто, и я отправляю уведомление, и когда я нажимаю на него, открывается правильное действие, как в этом примере:

Приложение не запущено> Приходит уведомление> Нажмите на уведомление> Откроется Activity_T.

НО, когда мое приложение работает, и я получаю уведомление, и когда я нажимаю на него, чтобы открыть Activity_T, оно не загружает MainActivity вместо этого.

Я использую следующие флаги

    Intent intent = new Intent(mContext, (Class<?>) activityToLaunch);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    intent.putExtra("tt", title);
    intent.putExtra("bd", body);
    mContext.startActivity(intent);

Я хочу открыть Activity_T, щелкнув уведомление, приложение запущено или нет. Как принудительно открыть Activity_T всякий раз, когда я нажимаю на уведомление.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Попробуйте код ниже ... Измените YOUR_ACTIVITY.CLASS на название своей деятельности ...

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Intent intent=new Intent(this,YOUR_ACTIVITY.CLASS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);//new PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder= new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle("FCM NOTIFICATION");
notificationBuilder.setContentText(Objects.requireNonNull(remoteMessage.getNotification()).getBody());
notificationBuilder.setAutoCancel(true);
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
assert notificationManager != null;
notificationManager.notify(0,notificationBuilder.build());
}
0 голосов
/ 08 ноября 2018

Отправляю уведомление от получателя на метод ReReceive. При нажатии на уведомление я открываю активность, даже приложение было убито. Я использовал это

Intent notificationIntent = new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(context, "")
        .setSmallIcon(R.drawable.my_ic)
        .setContentTitle(title)
        .setContentText(msg)
        .setContentIntent(contentIntent);
...