我正在使用SharedPreferences
来存储我的数据。当我的应用程序正在运行时,数据已成功保存到SharedPreferences
,但是当我关闭我的应用程序并尝试通过Intent Service
保存数据时,什么也没有发生。没有保存到该数据:在应用程序未运行时将数据保存在SharedPreferences中
public class TinyDB {
private SharedPreferences preferences;
private String DEFAULT_APP_IMAGEDATA_DIRECTORY;
private String lastImagePath = "";
public TinyDB(Context appContext) {
preferences = PreferenceManager.getDefaultSharedPreferences(appContext);
}
public void putString(String key, String value) {
checkForNullKey(key); checkForNullValue(value);
preferences.edit().putString(key, value).apply();
}
}
我使用它的对象onMessageReceive()
public void onMessageReceived(RemoteMessage remoteMessage) {
tinyDb.putString("key","value");
}
主要的一点,我要确保我要保存的值时,应用程序没有运行。当应用程序运行时,一切都很好。
我也想知道什么类或活动是最好的初始化TinyDB的对象,我应该使它静态或不?
您的意思是您正在尝试在应用程序关闭时将密钥保存到sharedPrefs。如果这是真的,那么在调用putString方法时,需要确保tinyDB的资源仍然存在(由于原始上下文丢失,优选实例可能不起作用)。 –
是的,我知道,那就是我想知道的问题的答案 –
你究竟在'SharedPreferences'上调用'apply()'或'commit()'在哪里? – Darwind