我正在使用Firebase向我的应用发送推送通知,并希望将一些值保存到sharedpreferences。它的工作完美时,应用程序是前景,但它不保存应用程序在后台时的值。 我的代码如下所示:FCM通知问题
@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);
}
}
但在通知显示这两种情况。如何解决这个问题?
当应用程序处于后台时,该文档还提到了接收通知的以下情况:在这些情况下,通知被传递到设备的系统托盘,并且数据有效载荷以附加意图你的发射器活动。 –
''替换sessionManager =新的SessionManager(this);'用'sessionManager = new SessionManager(getBaseContext());' –
从服务器发送通知时只使用数据字段。 –