Общая настройка обновляется только после перезапуска приложения - PullRequest
0 голосов
/ 31 января 2019

Я сохраняю общее предпочтение в одном из моих действий. Предпочтение сохраняется, но когда это действие завершается и возвращается к основному действию, где я проверяю свое сохраненное общее предпочтение, оно возвращает false (без общего предпочтения).я перезапустил свое приложение, тот же общий параметр проверяется там, где он указан, у него есть некоторые значения.Короче говоря, значения общих настроек обновляются только после перезапуска приложения.

Main Activity(Calling Settings Activity):
 Intent intent = new Intent(Voiceanswer.this, SettingsActivity.class);
 startActivityForResult(intent, 108);


Settings Activity:(onCreate)
SharedPreferences.Editor editor=getSharedPreferences("trial",MODE_PRIVATE).edit();
    editor.putBoolean("flag",false);
    boolean trialflag=editor.commit();

Завершение настройки Активность:

SettingsActivity.this.finish();

Основная активность (при возобновлении)

SharedPreferences voiceTemp=getSharedPreferences("trial",MODE_PRIVATE);

       if(voiceTemp.contains("flag"))
            Log.d(TAG, "Contains key flag");

      boolean trialflag=voiceTemp.getBoolean("flag",true);

Перед перезапуском приложения, после завершения настройки активности:

voiceTemp.contains("flag") returns false.
trialflag=true;

После перезапуска приложения:

voiceTemp.contains("flag") returns true.
trialflag=false;

1 Ответ

0 голосов
/ 31 января 2019

https://riptutorial.com/android/example/4983/commit-vs--apply

Если другой редактор в этой SharedPreferences выполняет регулярную фиксацию (), а метод apply () все еще не выполнен, фиксация () будет блокироваться до тех пор, пока не будут выполнены все асинхронные фиксации (apply).как и любые другие синхронизирующие коммиты, которые могут быть ожидающими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...