我有一个音乐服务,用一个复选框来控制我的音乐。复选框状态将正确保存在我的共享首选项中!基本配置=应用程序启动时的音乐和复选框打开。这么长时间一切正常!
我想将这些状态仅保存在活动的应用会话中。重新启动我的应用程序后,它应该是基本状态(音乐和复选框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;
}
答案 0 :(得分:2)
要删除所有共享偏好设置:
SharedPreferences myPrefs = getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = myPrefs.edit();
editor.clear();
editor.commit();
但究竟何时这样做仍在谈判中 - 请参阅上面的评论!现在还不完全清楚你想要什么。你可以尝试将它放在Activity的onStop
方法中,看看是否能得到你想要的结果。