0

チェックボックスで音楽を操作する音楽サービスがあります。チェックボックスの状態は、共有設定に正しく保存されます! 基本設定=アプリ起動時の音楽ON、チェックボックスもON。長い間、すべて正常に動作します!

これらの状態をアクティブなアプリ セッションでのみ保存した​​い。アプリを再起動すると、基本的な状態 (音楽とチェックボックスがオン) になります。このコードでは、彼は最後の状態であるこの状態から始めます。

助けてくれてありがとう!

Java コード:

    chkBoxMusic = (CheckBox) findViewById(R.id.checkBoxMusic);

    boolean isChecked = getBooleanFromPreferences("isChecked");
    chkBoxMusic.setChecked(isChecked);

    chkBoxMusic.setOnCheckedChangeListener(new OnCheckedChangeListener() {
   public void onCheckedChanged(CompoundButton buttonview, boolean isChecked) {

    Log.i("boolean",""+isChecked);
    ActivitySound.this.putBooleanInPreferences(isChecked,"isChecked");

       if (!isChecked) {

          stopService(new Intent(ActivitySound.this, MusicService.class));
       }

       else {

          startService(new Intent(ActivitySound.this, MusicService.class));
       }

      }

       });

   }

    public void putBooleanInPreferences(boolean isChecked,String key) {

    SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean(key, isChecked);
    editor.commit();        
}

    public boolean getBooleanFromPreferences(String key) {

    SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE);
    Boolean isChecked = sharedPreferences.getBoolean(key, false);

    return isChecked;       

}
4

1 に答える 1

1

すべての共有設定を削除するには:

SharedPreferences myPrefs = getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = myPrefs.edit();
editor.clear();
editor.commit();

しかし、正確にいつそれを行うかはまだ交渉中です - 上記のコメントを参照してください! 今でもあなたが何を望んでいるのかは完全には明らかではありません。これを Activity のメソッドに入れてonStopみて、それがあなたが望む結果をもたらすかどうかを確認することができます.

于 2012-12-11T16:43:53.153 に答える