#android
У меня приложение выполняется в главном активити MainActivity а мне нужно, чтобы приложение закрывалось через пункт меню настроек. Я пробовал вот так вызывать в классе settings extends PreferenceActivity но ничего не происходит: Preference pfinish = (Preference)findPreference(getString(R.string.settings_finish)); pfinish.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener(){ @Override public boolean onPreferenceClick(Preference preference) { MainActivity mp = new MainActivity(); mp.finish(); return true; } }); Вообще, во многих пограммах есть пункт Exit как это сделать?
Ответы
Ответ 1
Если это единственное открытое activity в приложении, то можно использовать просто: finish(); без обращения к какому-либо экземляру. Чтобы закрыть приложение с любым количеством activity есть: android.os.Process.killProcess(android.os.Process.myPid()); Но вам скорее всего подойдет и finish()Ответ 2
Класс активности не является синглтоном, судя по вашим ощущениям, прослеживающимся в коде. Создание активности было порождено интентом => класс активности уже был создан за вас кем-то (системой, ActivityManager`ом). Закрыть конкретную активность можно, обладая ее экземпляром. Способы закрытия приложения как совокупности активностей: finishAffinity() - экземпляр нужен finishAndRemoveTask() - экземпляр нужен System.exit(0) - экземпляр не нужен (в стеке должно быть не более 1 активности)Ответ 3
На кнопку в настройках вешаешь листенер и в нём прописываешь finish();
Комментариев нет:
Отправить комментарий