Когда пользователь нажимает кнопку «Назад» на намерение, приложение должно выйти. Как я могу обеспечить, чтобы приложение закрылось при нажатии кнопки «Назад»?Кнопка отмены андроида должна выйти из приложения
ответ
Сразу после запуска нового действия, используя startActivity
, убедитесь, что вы вызываете finish()
, чтобы текущая активность не складывалась за новой.
EDIT Что касается Вашего комментария:
Что вы предлагаете не особенно, как правило, работает андроид поток приложения, и как пользователи ожидают его на работу. То, что вы может сделать, если вы действительно этого хотите, чтобы убедиться, что каждый startActivity
, ведущий к этому действию, является startActivityForResult
и имеет прослушиватель onActivityResult
, который проверяет код выхода и возвращает пузыри обратно. Вы можете read more about that here. В принципе, использовать setResult
до завершения деятельности, установить код выхода на ваш выбор, и если ваша материнская деятельность получает этот код выхода, вы установите его в этой деятельности, и закончить это один и т.д ...
Почему бы пользователю не просто нажать кнопку «домой»? Затем они могут выйти из вашего приложения из любой вашей деятельности, а не только из конкретной.
Если вы беспокоитесь о том, что ваше приложение продолжает делать что-то в фоновом режиме. Обязательно остановите его в соответствующих командах onPause и onStop (которые будут запускаться при нажатии пользователем Home).
Если ваша проблема в том, что вы хотите, чтобы в следующий раз пользователь нажимал на ваше приложение, чтобы начать с самого начала, я рекомендую поместить на экран какой-то элемент меню или кнопку пользовательского интерфейса, который возвращает пользователя к начиная деятельность вашего приложения. Как и щебет птицы в официальном приложении Twitter и т.д.
В моей домашней деятельности я переопределить «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
Отлично, только то, что мне нужно. –
Может кто-нибудь описать более подробно, как это работает? Если пользователь продолжает нажимать кнопку «Назад», а затем перезапускает приложение, не будет ли поток активности расти на неопределенный срок? – pete
Отлично, он работал «как рекламируемый» :) – s0nica
лучшего пользовательский опыт:
/**
* 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++;
}
}
Отличная работа. Несколько других вещей, которые я добавил бы, это установить переменную-член для вызова Toast.makeText (например, Toast myToast = Toast.makeText()), а затем использовать это на backButtonCount> = 1, вызывая .cancel() на этом тосте. Я увеличил продолжительность до Toast.LENGTH_LONG для своих целей, потому что для количества текста продолжительность казалась коротким. Мои пользователи - старые люди. Кроме того, как очевидно, backButtonCount является переменной-членом, равной 0, а также должен быть установлен в 0 в вашей первой инструкции if. –
Я также добавляю "android.os.Process.killProcess (android.os.Process.myPid());" поэтому мое приложение будет убито и перезагрузится, если пользователь снова нажмет на него –
закончить свой current_activity с помощью метода finish() onBack method of your current_activity
, а затем добавить ниже строк в OnDestroy в current_activity для Удаления принудительного закрытия
@Override
public void onDestroy()
{
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
Приложение выйдет только в том случае, если в заднем стеке нет действий. SO добавить эту строку в файл манифеста андроида: noHistory = «истинный» для всех видов деятельности, которые вы не хотите, чтобы вернуться stacked.And то, чтобы закрыть приложение вызвать отделку() в OnBackPressed
<activity android:name=".activities.DemoActivity"
android:screenOrientation="portrait"
**android:noHistory="true"**
/>
Прежде всего, Android не рекомендует вам делать это в кнопке «Назад», но, используя методы жизненного цикла. Кнопка «Назад» не должна уничтожать «Активность».
Действия добавляются в стек, доступный из обзора (квадратная кнопка, поскольку они ввели конструкцию материала в 5.0), когда кнопка возврата нажата на последнюю оставшуюся активность из стека пользовательского интерфейса. Если пользователь хочет закрыть приложение, он должен удалить его (закрыть) из меню «Обзор».
Ваше приложение несет ответственность за прекращение любых фоновых задач и заданий, которые вы не хотите запускать, в onpept() и 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);
}
Чтобы выйти из приложения для Android, просто используйте его. в вашей основной деятельности, или вы можете использовать Android файл манифеста, чтобы установить
android:noHistory="true"
Использование onBackPressed
методу
@Override
public void onBackPressed() {
finish();
super.onBackPressed();
}
Это позволит решить проблему.
Я изменил ответ @Vlad_Spays так, что кнопка «назад» действует нормально, если она не является последним элементом в стеке, а затем запрашивает пользователя перед выходом из приложения.
@Override
public void onBackPressed(){
if (isTaskRoot()){
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++;
}
}else{
super.onBackPressed();
}
}
- 1. Задняя кнопка должна выйти прямо
- 2. Отмена кнопки должна выйти из подкаталога
- 3. Кнопка отмены UIActionSheet продолжает сбой моего приложения
- 4. Как выйти из приложения андроида, когда он не используется
- 5. андроида: как выйти из приложения должным образом на ошибки
- 6. Кнопка отмены Html5 JavaScript
- 7. Кнопка отмены диалогов JavaFX
- 8. Невозможно выйти из приложения
- 9. Выйти из приложения программно
- 10. выйти из приложения iphone?
- 11. Выйти из приложения изящно
- 12. Как выйти из приложения на кнопку «Главная кнопка»?
- 13. Кнопка отмены в UITextfield
- 14. Кнопка отмены WPF
- 15. Кнопка отмены отмены JOptionPane не будет отменена из окна?
- 16. Кнопка отмены C# UWP
- 17. Как выйти из приложения из кода
- 18. Кнопка отмены для редактора изображений
- 19. Кнопка отмены в UISearchController
- 20. Кнопка отмены WKInterfaceController
- 21. Кнопка отмены Instagram
- 22. Нужна ли кнопка отмены?
- 23. Кнопка отмены JDialog
- 24. UISearchBar кнопка отмены аварии
- 25. Кнопка отмены UISearchBar
- 26. Кнопка отмены для System.Drawing?
- 27. Кнопка отмены Omniauth-facebook
- 28. отмены тревоги уведомления в андроида
- 29. Ионных 2: Обращение андроида кнопка назад
- 30. кнопка отмены выбора из другого контроллера представления
я думаю, вы не поняли дело, на мой вопрос, когда пользователь нажимает на одной конкретной деятельности, которую я выбрал, нажав кнопку над ней следует сделать выход вызова из приложения –
хорошо назад, увидеть мой выбор. –