Лучший способ бросить приложение для Android?

Я ищу способ выйти из приложения Android в коде. Да, я знаю, я не должен делать это, потому что андроид обрабатывает его, когда вы нажимаете кнопку «Назад», но у меня есть настроенный поток, который заставляет меня реализовать это. Я уже некоторое время искал и нашел несколько ответов:

  • Это не должно быть сделано => Нет.
  • Вызов finish () в моей активности => Только для 1 активности, а не для всего приложения.
  • Начните Намерение с первым действием со специальным флагом => У меня есть несколько точек входа, поэтому не вариант.
  • Просто убей мой собственный процесс => Не уверен в этом, вызовет ли он метод onDestroy () во всех действиях? И будут ли мои фоновые службы работать с этим? (Который не должен быть остановлен)

Поэтому мне интересно, есть ли другой вариант выхода из моего приложения, или я действительно ограничен этими параметрами? Если действительно нет другого варианта, я решил создать список всех экземпляров моих действий в своем классе Application, а затем просто зациклю их, чтобы вызвать finish () на них. Но я не знаю, будет ли это правильным способом справиться с этим.

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

Изменить: я более или менее исправил проблему. У меня есть список WeakReference моей деятельности. В каждом onCreate я добавляю активность в список. Затем, когда я хочу выйти из своего приложения, я просто зациклирую список и назову finish (). Проблема: если список становится слишком большим, он не завершит все мои действия, так как андроид уже уничтожил их. Поэтому каждый раз, когда я знаю наверняка, они мне больше не нужны, я их заканчиваю. В моем случае список не может превышать 3/4 действия, поэтому больше не нужно беспокоиться о том, что действия не будут завершены. Также с этим методом мне не нужно разрушать собственный процесс.

    Вы не должны этого делать, но в любом случае, если вы настаиваете:

     System.exit(0); 

    Используйте ниже код.

     android.os.Process.killProcess(android.os.Process.myPid()); System.runFinalizersOnExit(true); 

    Не рекомендуется, но вы можете использовать это. Лучше пойти с этим решением, если вам нужно выйти из приложения.

    По моему мнению, лучшим решением является завершение каждого действия в вашем приложении, как показано ниже.

    Step1) сохранить статическую переменную в mainactivity say.

     public static isQuit = false; 

    Step2) в событии клика кнопки присваивает этой переменной значение true.

      mainactivity.isQuit = true; 

    Step3) И в каждом действии вашего приложения есть метод onrestart, как показано ниже.

      @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); if(mainactivity.isQuit) finish(); } 

    Вы можете сохранить список всех запущенных действий в списке (используйте WeakReference, чтобы избежать утечки памяти). Чтобы выйти из приложения, сначала вызовите метод завершения для каждого элемента, а затем вызовите android.os.Process.killProcess (android.os.Process.myPid ());