#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();
Комментариев нет:
Отправить комментарий