Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как закрыть приложение в Android

#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();

Комментариев нет:

Отправить комментарий