14

4 つのグローバルな静的 int 変数がある Service があり 、BOOT COMPLETE と Call イベントのレシーバーがあります。私がやろうとしているのは、Call イベント レシーバーが実行されるたびにこれら 4 つの変数を保存し、BOOT レシーバーが実行されるとき (もちろん、電話を再起動したとき) にそれらを取得することですが、両方とも機能していません。デバイスが再起動しますか?? コードは以下のとおりです

    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);
4

3 に答える 3

26

私はこれを使用しましたが、私にとってはうまくいきました。

保存用

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);
于 2013-07-26T05:30:28.007 に答える