【发布时间】:2017-04-06 05:38:47
【问题描述】:
我正在使用 Firebase 向我的应用发送推送通知,并希望将一些值保存到 sharedpreferences。当应用程序处于前台时它可以正常工作,但当应用程序处于后台时它不会保存值。 我的代码如下所示:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.e("Remotemessage",remoteMessage.toString());
String Heading = remoteMessage.getNotification().getTitle();
String message = remoteMessage.getNotification().getBody();
Map<String, String> data = remoteMessage.getData();
Log.e("Firebase notification ", " KEY1");
sessionManager=new SessionManager(this);
Log.e("Firebase notification ", " KEY"+data.get("click_action"));
Log.e("Firebase notification ", " KEY new"+data.get("key"));
int studentid= Integer.parseInt(data.get("student_id"));
Log.e("STUDENT ID",""+studentid);
if(studentid!=0)
{
sessionManager.saveStudentId(studentid);
}
}
但通知显示两种情况。如何解决这个问题??
【问题讨论】:
-
该文档还提到了当应用程序在后台时接收通知的以下内容:在这些情况下,通知被传递到设备的系统托盘,并且数据负载被传递到额外的启动器 Activity 的意图。
-
replace sessionManager=new SessionManager(this);和sessionManager=new SessionManager(getBaseContext()); -
从您的服务器发送通知时仅使用数据字段。
-
感谢@RatilalChopda 成功了。
-
欢迎...@Saneesh
标签: android firebase push-notification firebase-cloud-messaging