2013-07-25 11 views
8

グローバルな静的int変数があり、私はBOOT COMPLETEとCallイベントの受信機を持っています。コールイベントレシーバーが実行され、BOOTレシーバーが実行されたとき(もちろん私が自分の電話を再起動したとき)にこれらの4つの変数を保存しておきますが、どちらも動作していません。別のものも便利ですデバイスが再起動したら?コードが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

を取得するための

? – Vigbyor

+0

実際に私は受信者に別の新しいインテントサービスを開始しており、これをやっています。 Onhandleintent()関数で。 – Ateeq

答えて

17

使用すると、私はこれを使用し、それが私のために働きました。

SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
SharedPreferences.Editor editor=saved_values.edit(); 
    editor.putInt("count",count); 
      editor.putInt("foo",foo); 
    editor.commit(); 

を保存するための、あなたがBroadCastRecevierのコードをアップロードしてくださいすることができ

 SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

     count = saved_values.getInt("count", -1); 
+3

これを投稿していただきありがとうございます。ストレートSharedPreferencesは規定どおりに動作していませんでした。 – SQLiteNoob

11

を取得するために与えられている、あなたが編集を呼び出すたびに()新しいエディタのオブジェクトがcreated.Youは1つのエディタオブジェクトのインスタンスを保持し、実行しなければならないですそれに対するすべての操作。

 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

関連する問題