单击通知后启动器活动正在打开(应用程序已关闭)

时间:2020-01-13 13:04:32

标签: android notifications firebase-cloud-messaging

我正在使用Firebase Cloud Messaging向我的应用程序发送通知。我有一个名为NoticeActivity的活动,应该在单击通知栏后将其打开。如果应用程序打开,它将很好地工作。 但是,如果应用程序已关闭,则单击通知栏后,启动器活动即会打开。 这是通知代码。

private static final String TAG = "PUSH NOTIFICATION:";
public  int channal_id = 6; 
//String CHANNEL_ID = "my_channel_01";

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    if(remoteMessage.getData().size() > 0){
        Log.d(TAG, " "+ remoteMessage.getData());
    }

    if (remoteMessage.getNotification() != null){
        sendNotifcation(remoteMessage.getNotification().getBody());
    }
}

private void sendNotifcation(String body) {
    Intent intent = new Intent(getApplicationContext(), NoticeActivity.class);
    intent.putExtra("Details", body);
    //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

    PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT );

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("BRAC SK LEARNING")
            .setContentText(body)
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
                "Channel human readable title",
                NotificationManager.IMPORTANCE_DEFAULT);
        manager.createNotificationChannel(channel);
    }
    notificationBuilder.setChannelId(CHANNEL_ID);

    manager.notify(001, notificationBuilder.build());
}

1 个答案:

答案 0 :(得分:1)

当您的应用在后台运行时,Android会引导通知 消息发送到系统托盘。用户点击通知即可打开 默认情况下是应用启动器。

这包括同时包含通知和数据有效负载的消息 (以及从通知控制台发送的所有消息)。在这些 在这种情况下,通知将传递到设备的系统托盘,并且 数据有效载荷是根据您的意图提供的 启动器活动。

要深入了解将消息传递到您的应用,请参阅FCM报告 仪表板,记录在iOS上发送和打开的消息数 和Android设备,以及“展示”数据(通知 用户看到))。

Reference here