Android共享首选项不起作用
问题描述:
我有一个服务,其中有4个全局静态诠释变量,我有一个BOOT COMPLETE和Call事件的接收器。我试图做的是每当Call事件接收器执行时保存这4个变量,并在执行BOOT接收器时(当然,当我重新启动手机时)检索它们,但两者都不工作..另一件事是共享首选项也是有用的当设备重新启动时?下面Android共享首选项不起作用
SharedPreferences saved_values = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
saved_values.edit().putInt("call", MyService.callcount);
saved_values.edit().putInt("callend",MyService.callendcount);
saved_values.edit().putInt("network",MyService.network_count);
saved_values.edit().putInt("ringing",MyService.ringingcount);
saved_values.edit().commit();
和检索
SharedPreferences saved_values = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
MyService.callcount = saved_values.getInt("call", -10);
MyService.ringingcount=saved_values.getInt("ringing", -10);
MyService. network_count=saved_values.getInt("network", -10);
MyService. callendcount=saved_values.getInt("callend", -10);
答
我用这个和它的工作对我来说。
为了节省
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor=saved_values.edit();
editor.putInt("count",count);
editor.putInt("foo",foo);
editor.commit();
和检索
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
count = saved_values.getInt("count", -1);
+3
感谢您发表此内容。直接SharedPreferences没有按规定工作。 – SQLiteNoob
答
该问题的代码中给出的每次调用编辑时间()一个新的编辑器对象是created.You应该持有一个编辑器对象的实例,并执行所有的操作。
使用以下
SharedPreferences saved_values = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=saved_values.edit();
editor.putInt("call", MyService.callcount);
editor.putInt("callend", MyService.callendcount);
editor.putInt("network", MyService.network_count);
editor.putInt("ringing", MyService.ringingcount);
editor.commit();
+2
其不同步的问题 – Ateeq
能否请您上传BroadCastRecevier的代码? – Vigbyor
实际上,我正在接收器中启动另一个新的意图服务,并且我正在执行此操作。在Onhandleintent()函数中。 – Ateeq