使用FirebaseMessagingService生成通知。 点击它之后,将显示活动,但不会调用onNewIntent()。 在7.1上运行。
目标:
到目前为止,我研究了很多帖子后才知道,还有什么想念的?
谢谢。
编辑:添加了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());
答案 0 :(得分:0)
onNewIntent
。仅当Activity
已经存在时,它才会被带到栈顶并调用onNewIntent
。如果Activity
还不存在,则将调用onCreate
。
在大多数情况下,这意味着对于singleTop
Activities
,您可以在setIntent
方法中调用onNewIntent
,然后在getIntent
中调用onResume
。这样,您将始终处理将Intent
带到堆栈顶部的Activity
。