Как я могу решить эту проблему? Я думаю, что я должен сохранить свою функцию отключения звука, но не знаю, как это сделать.
Я хочу спросить, как я могу отключить звук в своей активности в соответствии с настройками флажка в настройках активности.
Моя страница настроек выглядит следующим образом.
public class Settings extends PreferenceActivity {
CheckBoxPreference soundPref;
AudioManager mAudioManager = null;
final String SOUND = "soundPreference";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
setPreferenceScreen(createPreferenceHierarchy());
}
private PreferenceScreen createPreferenceHierarchy() {
// Root
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
// Dialog based preferences
PreferenceCategory category1 = new PreferenceCategory(this);
root.addPreference( category1 );
soundPref = new CheckBoxPreference( this );
soundPref.setTitle(R.string.sound);
soundPref.setKey(SOUND);
/**
* Adding all items to Preferences
*/
category1.addPreference(soundPref);
soundPref.setOnPreferenceClickListener(new ReflectiveAction( this, "evSound" ) );
return root;
}
public void evSound()
{
if(soundPref.isChecked())
{Toast.makeText(getBaseContext(),
R.string.sound_enable,
Toast.LENGTH_SHORT).show();
setSoundText();
if(mAudioManager!=null) {
mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
}
}
else
{
Toast.makeText(getBaseContext(),
R.string.sound_disable,
Toast.LENGTH_SHORT).show();
setSoundText();
if(mAudioManager!=null) {
mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC,true);
}
}
и я создаю звуки в своем другом действии экземпляром MediaPlayer. mp.start ().
проблема в том, что всякий раз, когда я сначала запускаю свое приложение, мне приходится заходить в настройки и нажимать на флажок, чтобы выбрать, и снова для отмены выбора, тогда звук отключается. но когда я запускаю приложение и сначала перехожу к своей деятельности, в которой я создаю звук, звук не отключается. Сначала я должен посетить страницу настроек, чтобы отключить звук.
При выполнении вышеописанного кодирования мое состояние checkBox сохраняется в моем ключе настроек, но мое приложение не сохраняет функцию отключения звука, поэтому мне нужно сначала посетить страницу настроек, чтобы активировать функцию отключения звука.
Как я могу решить эту проблему? Я думаю, что я должен сохранить свою функцию отключения звука, но не знаю, как это сделать.