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); 
+0

能否请您上传BroadCastRecevier的代码? – Vigbyor

+0

实际上,我正在接收器中启动另一个新的意图服务,并且我正在执行此操作。在Onhandleintent()函数中。 – Ateeq

我用这个和它的工作对我来说。

为了节省

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