通知活动

时间:2017-06-28 04:37:09

标签: android android-activity

我的通知触发得非常好,但我的问题是,当我点击通知中心的通知时,它不会启动我的应用程序哪个打开的应用程序。

基本上,在点击我的通知后,它打开了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());
    }

1 个答案:

答案 0 :(得分:0)

在通知有效内容中,您需要click_action属性才能使通知可点击。

请查看Firebase文档的section

此外,当您定义click_action属性时,您还需要在要启动的活动的<action>中使用相应的<intent-filter>属性。

video以非常详细的方式解释了它。

但请注意,如果您要从Firebase控制台发送通知,则无法设置click__action属性。只有从自己的管理服务器或使用Firebase云功能发送通知时,才能执行此操作。

最后,在启动的活动中,您可以使用getIntent()获取其余的通知数据。查看this answer了解有关如何执行此操作的详细信息。