我有新的通知,所以請不要嚴格...從通知原意是空
我收到消息從FCM,併發出通知:
int requestID = (int) System.currentTimeMillis();
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra(ConstantsUtil.Firebase.TOPIC_UPDATE, ConstantsUtil.Firebase.TOPIC_UPDATE);
intent.setAction(ConstantsUtil.Firebase.TOPIC_UPDATE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, requestID, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(false)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(requestID, notificationBuilder.build());
如果應用程序正在運行當設備收到通知時 - 它工作正常,打開新的活動,我可以getExtras和getAction。
但是,如果應用程序關閉並收到通知,然後用戶單擊它 - 比打開新活動,但intent.getExtraString爲null,與getAction相同。
如何在應用程序關閉時從通知中獲取Action和getExtras?
你是如何發送通知的? –
它會變嗎?與firebase消息系統 –
是的,它確實很重要,發送的消息類型(通知消息或數據消息)可以通過發送方法確定。例如:如果您從Firebase控制檯發送郵件,郵件將始終爲通知郵件,可能需要以特定方式處理郵件。 –