Завершить все действия, когда нажата кнопка «Назад»

У меня есть приложение для Android с 3 активностями. Для 1-го и 2-го занятия я хочу, чтобы кнопка «Назад» завершила все существующие действия.

В тот момент, когда кнопка «Назад» выходит из действия, для которого она инициирована, но если она нажата во 2-м действии, будет отображаться 1-е действие, а не выходить из приложения, поскольку 1-е действие ведет ко 2-му.

Причина, по которой мне требуются эти функции, заключается в том, что в первом и втором упражнениях используются таймеры хронометра, которые продолжают работать при нажатии кнопки HOME, которую я хочу. Но мне нужен способ сбросить таймеры для полного выхода из приложения с помощью кнопки НАЗАД.

Вот мой код для кнопки «Назад», которая присутствует в первом и втором действиях.

<code>@Override
 public void onBackPressed() { // method for exit confirmation
  AlertDialog.Builder builder = new AlertDialog.Builder(BreakActivity.this);
  builder.setMessage("Are you sure you want to exit?")
         .setCancelable(false)
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  BreakActivity.this.finish();
             }
         })
         .setNegativeButton("No", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  dialog.cancel();
             }
         });
  AlertDialog alert = builder.create();
  alert.show();

        }         
  };  
</code>

Я исследовал возможность использования следующего кода:

<code>intent = new Intent(this, FinActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
finish();
</code>

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

Любая помощь в получении этой работы будет принята с благодарностью!

Спасибо

Ответы на вопрос(5)

Не вызывайте ни один System.exit или что-то еще! Архитектура Android построена для самостоятельного управления процессами. Android сам решает, когда убить процесс приложения. Когда вы убиваете свое приложение вручную, вы создаете дополнительные издержки для пользовательского устройства.

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

Решение Вопроса

@Rob, когда вы переходите от действия 1 к 2 и от 2 до 3 с намерением использованиеfinish функция

лайк

 i=new Intent(Main_Menu.this, ABC.class);
          finish();
         startActivity(i);

Это убьет действие, из которого вы перейдете к следующему действию  и затем, когда вы нажмете кнопку, вы выйдете за пределы приложения, потому что в стеке не будет активности

 Rob05 апр. 2012 г., 15:44
Хорошо, спасибо, я получил это работает! Это лучше работает для моего приложения, но ответ ниже также является жизнеспособным решением, спасибо всем
 05 апр. 2012 г., 15:28
Извините, main_menu - это одно из действий в моем приложении, и abc - это вызванное действие, например переход от первого действия ко второму, здесь Main_Menu - текущее действие.
 Rob05 апр. 2012 г., 15:26
Привет, спасибо за этот ответ. Мне нравится звук этого, но является ли ABC текущей деятельностью? а что такое Main_menu? Я получаю main_menu, который не может быть преобразован в тип?

Вы можете использовать это

        finish();
        Intent intent = new Intent(Intent.ACTION_MAIN); 
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addCategory(Intent.CATEGORY_HOME); 
        startActivity(intent);

обратите внимание на одно: всегда избегайте system.exit для выхода из приложения, оно не рекомендуется и может вызывать различные проблемы

https://groups.google.com/forum/?fromgroups#!topic/android-developers/Y96KnN_6RqM

Закройте приложение и запустите домашний экран на Android

 17 июл. 2015 г., 12:53
Единственное рабочее решение. Спасибо
 05 апр. 2012 г., 14:50
добро пожаловать дорогой

Используйте эту строку кода:

System.exit(1);

//The integer 1 is just a return code.

как закрыть все приложение в андроиде

Ты можешь использовать-

Process.killProcess(android.os.Process.myPid());

Ваш ответ на вопрос