另一个onNewIntent()问题|仍然没有被召唤

时间:2018-07-05 12:49:23

标签: android

使用FirebaseMessagingService生成通知。 点击它之后,将显示活动,但不会调用onNewIntent()。 在7.1上运行。

目标:

  • 接收FCM通知-有效
  • 点击通知后,显示活动并在对话框中显示通知消息-不起作用
    • 活动显示出来,
    • extras.getString()返回null。

到目前为止,我研究了很多帖子后才知道,还有什么想念的?

谢谢。

编辑:添加了onResume()方法,Extras变量不为null,字符串为空

@extend .input__radio;

活动:

Notification.Builder mBuilder =
        new Notification.Builder(this)
                .setSmallIcon(R.drawable.ic_icon)
                .setContentTitle(title)
                .setContentText(message)
                .setOnlyAlertOnce(false)
                .setAutoCancel(true)
                .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                .setVibrate(new long[] {0,400,150,400});

mBuilder.setNumber(++count);

Intent pushIntent = new Intent(this, PushMeMessageDialogActivity.class);
pushIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
pushIntent.putExtra(Constants.INTENT_TOPIC, title);
pushIntent.putExtra(Constants.INTENT_MESSAGE, message);
pushIntent.setAction(Intent.ACTION_MAIN);
pushIntent.addCategory(Intent.CATEGORY_LAUNCHER);

PendingIntent pushPendingIntent = PendingIntent.getActivity(this, count, pushIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pushPendingIntent);

NotificationManager notifyMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notifyMgr.notify(count, mBuilder.build());

1 个答案:

答案 0 :(得分:0)

documentation中所述,每次显示活动时都不会调用

onNewIntent。仅当Activity已经存在时,它才会被带到栈顶并调用onNewIntent。如果Activity还不存在,则将调用onCreate

在大多数情况下,这意味着对于singleTop Activities,您可以在setIntent方法中调用onNewIntent,然后在getIntent中调用onResume 。这样,您将始终处理将Intent带到堆栈顶部的Activity