我的通知触发得非常好,但我的问题是,当我点击通知中心的通知时,它不会启动我的应用程序哪个打开的应用程序。
基本上,在点击我的通知后,它打开了Mainactivity但我想从我的应用程序打开另一个页面。
当我的应用程序处于前台并且通知到达其打开的完美页面时,但当应用程序不在前台时,它是打开的Mainactivity
所以请告诉我,我该怎么办?...
private void sendNotification(String body) {
if (body.equals("Image Upload Successfully")){
intent= new Intent(this, Image_Gallery.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}else if (body.equals("Video Upload Successfully")){
intent = new Intent(this, Video_Gallary.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}else if (body.equals("Home Work Are Uploaded")){
intent = new Intent(this, HomeWork.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}else if (body.equals("Daily Work Are Uploaded")){
intent = new Intent(this, DailyDairy.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}else if (body.equals("Upcomming Holiday")){
intent = new Intent(this, Events.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}else if (body.equals("New Event Are Uploaded")){
intent = new Intent(this, Events.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
PendingIntent pendingIntent = PendingIntent.getActivity(this, not_nu, intent, PendingIntent.FLAG_ONE_SHOT);
//Set sound of notification
Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notifiBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Notificaton")
.setContentText(body)
.setAutoCancel(true)
.setVibrate(v)
.setSound(notificationSound)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(not_nu , notifiBuilder.build());
}
答案 0 :(得分:0)
在通知有效内容中,您需要click_action
属性才能使通知可点击。
请查看Firebase文档的section。
此外,当您定义click_action
属性时,您还需要在要启动的活动的<action>
中使用相应的<intent-filter>
属性。
这video以非常详细的方式解释了它。
但请注意,如果您要从Firebase控制台发送通知,则无法设置click__action
属性。只有从自己的管理服务器或使用Firebase云功能发送通知时,才能执行此操作。
最后,在启动的活动中,您可以使用getIntent()
获取其余的通知数据。查看this answer了解有关如何执行此操作的详细信息。