我有一个Android应用程序,它使用FCM进行推送通知。有一个发送推送通知的后端
每次用户上传图片时,都会向订阅该主题的人发送推送通知。
点击通知栏中的通知后,我被重定向到应用的第一页。
如何使推送通知像Instagram一样工作。
收到通知并点击后,我想转到该特定屏幕,看到上传的图片。
如果用户在通知到达时在应用程序中。如何刷新活动以显示内容。我是否必须发出后端请求以显示新数据,还是可以显示通知本身的内容?
有没有我可以看的例子。
任何帮助将不胜感激。谢谢。
答案 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方法的广播接收器刷新你的显示 含量