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



我正在使用 Firebase 云消息传递来触发对我的应用的通知。我有一个名为"通知活动"的活动,应该在单击通知栏后打开。如果应用程序处于打开状态,则效果很好。但是,如果应用程序已关闭,则在单击通知栏后将打开启动器活动。这是通知的代码。

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());
}

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

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

要深入了解向应用传递消息的情况,请参阅 FCM 报告 仪表板,用于记录在 iOS 上发送和打开的消息数 和安卓设备,以及"展示次数"的数据(通知 用户看到(的安卓应用。

参考这里

相关内容

  • 没有找到相关文章

最新更新