如何在Android应用程序中显示来自推送通知的数据

时间:2018-06-12 10:11:06

标签: android firebase firebase-realtime-database push-notification firebase-cloud-messaging

我有一个Android应用程序,它使用FCM进行推送通知。有一个发送推送通知的后端

每次用户上传图片时,都会向订阅该主题的人发送推送通知。

点击通知栏中的通知后,我被重定向到应用的第一页。

如何使推送通知像Instagram一样工作。

收到通知并点击后,我想转到该特定屏幕,看到上传的图片。

如果用户在通知到达时在应用程序中。如何刷新活动以显示内容。我是否必须发出后端请求以显示新数据,还是可以显示通知本身的内容?

有没有我可以看的例子。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

要启动包含后台堆栈活动的活动,您需要创建TaskStackBuilder的实例并调用addNextIntentWithParentStack(),并将其传递给您要启动的活动的Intent。

只要您已按上述方式为每个活动定义了父活动,就可以调用getPendingIntent()来接收包含整个后台堆栈的PendingIntent。

// Create an Intent for the activity you want to start
 Intent resultIntent = new Intent(this, ResultActivity.class);

// Create the TaskStackBuilder and add the intent, which inflates the back 
 stack

 TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
  stackBuilder.addNextIntentWithParentStack(resultIntent);

// Get the PendingIntent containing the entire back stack
  PendingIntent resultPendingIntent =
    stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

答案 1 :(得分:0)

对于

  

收到通知并点击后,我想转到   那个特定的屏幕,看到上传的图像。

使用以下代码

 package com.example.androiddatepicker;

    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.support.v4.app.NotificationCompat;
    import android.widget.Toast;

    public class AlarmReceiver extends BroadcastReceiver {

     private static final int MY_NOTIFICATION_ID=1;
     NotificationManager notificationManager;
     Notification myNotification;

     @Override
     public void onReceive(Context context, Intent intent) {
      Toast.makeText(context, "Alarm received!", Toast.LENGTH_LONG).show();

         Intent myIntent = new Intent(context, DoSomething.class);
         PendingIntent pendingIntent = PendingIntent.getActivity(
                context, 
                0, 
                myIntent, 
                Intent.FLAG_ACTIVITY_NEW_TASK);

         myNotification = new NotificationCompat.Builder(context)
           .setContentTitle("Exercise of Notification!")
           .setContentText("Do Something...")
           .setTicker("Notification!")
           .setWhen(System.currentTimeMillis())
           .setContentIntent(pendingIntent)
           .setDefaults(Notification.DEFAULT_SOUND)
           .setAutoCancel(true)
           .setSmallIcon(R.drawable.ic_launcher)
           .build();

         notificationManager = 
           (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
         notificationManager.notify(MY_NOTIFICATION_ID, myNotification);
     }

    }

  

如果用户在通知到达时在应用程序中。如何   刷新活动以显示内容。我必须做一个   后端请求显示新数据或我可以显示来自的数据   通知本身?

     

答案 - 使用来自通知的本地广播接收器广播消息   活动以及刷新显示内容所需的活动   您需要实现该本地广播接收器和   抓住该消息并再次调用您的webapi显示内容   onReceive方法的广播接收器刷新你的显示   含量