FirebaseMessaging Service(后台服务)中的SharedPreferences

时间:2019-01-04 01:29:58

标签: android firebase android-studio sharedpreferences background-process

早安,

我的问题是,如果我在关闭应用程序时收到通知,则我从FCM获取的数据不会保存在SharedPreferences中。

代码:

public class SomeService extends FirebaseMessagingService
{

SharedPreferences prefs;
SharedPreferences.Editor prefsEditor;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);

    prefs = this.getSharedPreferences("prefs", MODE_PRIVATE);
    prefsEditor = prefs.edit();

    Map<String,String> data = remoteMessage.getData();

    prefsEditor.putBoolean(Keys.text, Boolean.parseBoolean(data.get("text")));

    prefsEditor.apply();
}

}

1 个答案:

答案 0 :(得分:1)

如果您不使用FirebaseMessaging Data Message,则Firebase在后台时不会调用onMessageReceived。 onMessageReceived仅在前台调用。

您应该使用数据消息使onMessageReceived在后台工作

这是基于firebase docs的参考 关于firebase here

中的消息类型