Кто-нибудь знает, почему мой метод onDestroy для сохранения bool внутри моей общей pref отлично работает на vd, но не всегда работает на реальном устройстве? похоже, что я работаю, когда я ухожу из приложения и возвращаюсь дальше к главному экрану, но не при выходе из приложения, остаюсь в окне списка приложений и снова открываю приложение .. weird есть какая-то ошибка, о которой я не знаю или может зависеть от моих других классов? если это так я могу разместить код, но это очень просто, как сказал BOOL сохранить и получитьandroid onDestroy работает отлично только на vd
редактирования: если вы, ребята пытаются создать Scrollview в фрагменте (осколочной из MainActivity), и попытаться перейдите в режим редактирования и нажмите кнопку «Назад», чтобы выйти из приложения, немного побеседовать с ним, и вы увидите, что onDestroy и даже onStop не будут вызваны.
Q. Итак, как я должен сохранить свою префикс перед тем, как закончить приложение? надежным все время? также для этого мне понадобится альтернатива onDestroy, даже не onStop, потому что мне нужно сохранить pref только до того, как приложение перестанет меняться, и поскольку onDestroy не является надежным (из того, что говорит Android Dev guide), что я должен использовать? благодаря
Обход: я поместил это в onCreateView()
boolPref = getActivity().getSharedPreferences("pref_bool", Context.MODE_PRIVATE);
firstVisit = boolPref.getBoolean("bool", DEFAULT);
if (firstVisit == false) {
scrollView.setVisibility(View.VISIBLE);
}else{
scrollView.setVisibility(View.INVISIBLE);
}
if (savedInstanceState == null) {
scrollView.setVisibility(View.INVISIBLE);
}
где firstVisit является boolean firstVisit;
объявлена при запуске. (этот логический трюк был частью решения с другого поста, но он не работал хорошо внутри onDestroy() или onStop(), потому что иногда они не вызываются)
затем я добавил это внутри своей кнопки OnClick:
boolPref = getActivity().getSharedPreferences("pref_bool", Context.MODE_PRIVATE);
SharedPreferences.Editor editor_bool = boolPref.edit();
editor_bool.putBoolean("bool", false);
editor_bool.apply();
scrollView.setVisibility(View.VISIBLE);
и она работает, что это в основном делает: установить мой Scrollview быть скрыты каждый мой начинается приложение (через savedInstanceState, как @bwt предлагаемых ниже), и остается скрытым, когда я перейти на другой вид деятельности и прийти назад (с помощью bool = true), если я не нажму кнопку внутри первой активности (настройка и сохранение bool = false), поэтому с этого момента прокрутка просматривается всегда, даже если я перехожу к другому действию и возвращаюсь
Нет ограничений с SharedPreferences xml. Вы добавляете в свой редактор apply() или commit()? Дайте нам некоторый код, чтобы видеть. – Stanojkovic
Да или он не будет работать на vd – m4tt
Разместите свой код здесь. – Stanojkovic