Android 服务中的 sharedPreferences 为空
Android sharedPreferences inside service is empty
我有一个在启动时运行服务的 android 应用程序。在我的 MainActivity 中,我将数据写入 sharedPreferences:
String id="something";
SharedPreferences sp = this.getPreferences(this.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("opt", id);
editor.commit();
我想读取 运行 服务中的数据,但输出是 "empty":
String content="empty";
SharedPreferences settings = this.getApplication().getSharedPreferences("settings",Context.MODE_PRIVATE);
content =settings.getString("opt", "empty");
Log.i("opt:",opt); // Logs "empty"
SharedPreferences 是否在服务和应用程序之间共享?还是其他问题?
添加时,您使用默认的私有共享首选项,但在获取值时,您调用特殊命名的共享首选项 ("settings")。这将调用另一个名为 "settings" 的文件。这就是为什么你的价值是空的。默认和 named("settings") 共享首选项不同。
我有一个在启动时运行服务的 android 应用程序。在我的 MainActivity 中,我将数据写入 sharedPreferences:
String id="something";
SharedPreferences sp = this.getPreferences(this.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("opt", id);
editor.commit();
我想读取 运行 服务中的数据,但输出是 "empty":
String content="empty";
SharedPreferences settings = this.getApplication().getSharedPreferences("settings",Context.MODE_PRIVATE);
content =settings.getString("opt", "empty");
Log.i("opt:",opt); // Logs "empty"
SharedPreferences 是否在服务和应用程序之间共享?还是其他问题?
添加时,您使用默认的私有共享首选项,但在获取值时,您调用特殊命名的共享首选项 ("settings")。这将调用另一个名为 "settings" 的文件。这就是为什么你的价值是空的。默认和 named("settings") 共享首选项不同。