Intereting Posts
Проверяет ли флажок Никогда не спрашивать снова при запросе разрешения во время выполнения отключить будущие диалоги? Уведомление не отображается, когда setGroup () вызывается в Android KitKat Как отделить логику приложения от сетевого уровня в Android с помощью Retrofit 2 Как использовать классы Android «Surface»? Динамическое добавление просмотров в RelativeLayout внутри ScrollView Откройте страницу в Facebook, Twitter и приложении Google Plus из другого приложения – Android Проект LibGDX написан на Scala, на Android, используя IntelliJ Как настроить намерение совместного использования в Android? Запросить разрешения во время выполнения из v4.Fragment и выполнить обратный вызов в Fragment? Размеры экрана всплеска андроида для дисплеев ldpi, mdpi, hdpi, xhdpi? – например: 1024X768 пикселей для ldpi Утечка памяти с помощью GoogleApiClient, обнаруженная Android Studio EditTextPreference вызывает исключение Inflate Отдельные строковые значения Android для выпуска и отладки Использование FloatMath или Math и литье? Android: долго нажимайте на дочерние представления ExpandableListView?

Андроидная кнопка возврата должна выйти из приложения

Когда пользователь нажимает кнопку «Назад» на намерение, приложение должно выйти. Как я могу гарантировать, что приложение завершает работу при нажатии кнопки «Назад»?

Solutions Collecting From Web of "Андроидная кнопка возврата должна выйти из приложения"

Сразу же после запуска нового действия, используя startActivity , убедитесь, что вы вызываете finish() чтобы текущая активность не складывалась за новой.

EDIT Что касается вашего комментария:

То, что вы предлагаете, не так, как обычно работает поток приложений Android, и как пользователи ожидают его работы. Что вы можете сделать, если хотите, – это убедиться, что каждый startActivity ведущий к этому действию, является startActivityForResult и имеет прослушиватель onActivityResult который проверяет код выхода и возвращает его обратно. Вы можете больше узнать об этом здесь . В основном, используйте setResult перед завершением действия, чтобы установить код выхода по вашему выбору, и если родительский актив получает этот код выхода, вы установите его в этом действии и завершите его, и т. Д.

В моей домашней деятельности я переопределяю «onBackPressed»:

 @Override public void onBackPressed() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 

Поэтому, если пользователь находится в домашней активности и нажимает обратно, он переходит на главный экран.

Я взял код из Going to home screen Programmatically

Лучший пользовательский интерфейс:

 /** * Back button listener. * Will close the application if the back button pressed twice. */ @Override public void onBackPressed() { if(backButtonCount >= 1) { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } else { Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show(); backButtonCount++; } } 

Почему бы пользователю не просто нажать кнопку «домой»? Затем они могут выйти из вашего приложения из любой вашей деятельности, а не только из конкретной.

Если вы беспокоитесь о том, что ваше приложение продолжает делать что-то в фоновом режиме. Обязательно остановите его в соответствующих командах onPause и onStop (которые будут активированы при нажатии пользователем Home).

Если ваша проблема заключается в том, что вы хотите, чтобы в следующий раз, когда пользователь нажимает на ваше приложение, чтобы он начинался с самого начала, я рекомендую поместить на экран какой-то элемент меню или кнопку пользовательского интерфейса, который возвращает пользователя к начальному действию вашего приложение. Как твиттер в официальном твиттере и т. Д.

Использовать метод onBackPressed

 @Override public void onBackPressed() { finish(); super.onBackPressed(); } 

Это решит вашу проблему.

Приложение будет завершено только в том случае, если в заднем стеке нет действий. SO добавьте эту строку в ваш манифестный андроид: noHistory = "true" ко всем действиям, которые вы не хотите возвращать в стек. И затем, чтобы закрыть вызов приложения, завершите () в OnBackPressed

 <activity android:name=".activities.DemoActivity" android:screenOrientation="portrait" **android:noHistory="true"** /> 

Прежде всего, Android не рекомендует вам делать это в кнопке «Назад», но, скорее, используя предоставленные методы жизненного цикла. Кнопка «Назад» не должна уничтожать «Активность».

Действия добавляются в стек, доступный из Обзор (квадратная кнопка, поскольку они ввели конструкцию материала в 5.0), когда кнопка возврата нажата на последнюю оставшуюся активность из стека пользовательского интерфейса. Если пользователь хочет закрыть приложение, он должен удалить его (закрыть) в меню «Обзор».

Ваше приложение отвечает за прекращение любых фоновых задач и заданий, которые вы не хотите запускать, в методах жизненного цикла onPause (), onStop () и onDestroy (). Подробнее о жизненных циклах и их правильной реализации читайте здесь: http://developer.android.com/training/basics/activity-lifecycle/stopping.html

Но чтобы ответить на ваш вопрос, вы можете делать взломы для реализации точного поведения, которое вы хотите, но, как я уже сказал, это не рекомендуется :

 @Override public void onBackPressed() { // make sure you have this outcommented // super.onBackPressed(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 

Завершите работу current_activity, используя метод finish() onBack method of your current_activity

А затем добавьте ниже строки в onDestroy текущего_активности для удаления Force close

 @Override public void onDestroy() { android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy(); } 

Чтобы выйти из приложения для Android, просто используйте. В своей основной деятельности, или вы можете использовать файл манифеста Android для установки

 android:noHistory="true"