Как выйти из приложения Android с помощью кода?

Я уверен, что этот вопрос задавался несколько раз, потому что я мало читал. Мой клиент хочет, чтобы я нажал кнопку в его приложении, где пользователи могут нажать и выйти. Я прочитал это и нашел, что call finish() сделает это. Но, закончить – это только закрытие текущей текущей активности? У меня много действий, поэтому в этом случае я должен передать экземпляр каждого действия и закончить их или сделать каждое действие в шаблоне Singleton.

Я также узнал, что Activity.moveTaskToBack(true) может попасть на главный экран. ОК, это не закрытие, а фоновая обработка процесса. Так это эффективно?

Какой метод следует использовать для закрытия приложения ПОЛНОСТЬЮ? Любое из описанных выше или любого другого метода / другого использования вышеуказанных методов?

Пожалуйста помоги.

Solutions Collecting From Web of "Как выйти из приложения Android с помощью кода?"

Вы можете вызвать System.exit (); Чтобы выйти из всех занятий.

  submit=(Button)findViewById(R.id.submit); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } }); 

Фактически каждый ищет закрытие приложения в событии onclick, где бы это ни было …

Итак, друзья друзей пробовали этот код. Поместите этот код в событие onclick

 Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); 
  @Override public void onBackPressed() { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle("Exit Application?"); alertDialogBuilder .setMessage("Click yes to exit!") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } 

Если вы хотите выйти из приложения, используйте этот код внутри нажатой кнопки:

 public void onBackPressed() { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } 

Это слишком легко. Используйте System.exit(0);

В общем, есть две ситуации. 1. Вы можете выйти из действия 2. Или вы хотите выйти из приложения.

Вы можете выйти из операции, используя следующий код.

  var intent = new Intent(Intent.ActionMain); intent.AddCategory(Intent.CategoryHome); intent.SetFlags(ActivityFlags.NewTask); startActivity(intent); finish(); 

Но это не приведет к уничтожению основных действий в одном приложении. Там для этого будет просто минимизировать приложение.

Я хочу выйти из приложения формы, используя следующий код, который закончит процесс приложения.

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

Для моноразработки просто используйте

  process.KillProcess(Process.MyPid()); 
 android.os.Process.killProcess(android.os.Process.myPid()); 
  @Override public void onBackPressed() { Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); } 

Попробуйте это по вызову. Я иногда использую его в onClick кнопки.

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

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

Прочитайте этот вопрос для большей ясности android – код выхода из приложения

Как насчет this.finishAffinity()

Из документов,

Завершите это действие, а также все действия сразу под ним в текущей задаче, имеющей одинаковую близость. Обычно это используется, когда приложение может быть запущено на другую задачу (например, из ACTION_VIEW типа контента, который он понимает), и пользователь использовал навигацию вверх для переключения из текущей задачи и в свою собственную задачу. В этом случае, если пользователь перешел в другие действия второго приложения, все из них должны быть удалены из исходной задачи как часть переключателя задачи. Обратите внимание, что это завершение не позволяет доставлять результаты предыдущему действию, и если вы пытаетесь сделать это, будет выбрано исключение.

Призрачная активность, вызываемая с помощью singleletop и finish () на onCreate, должна делать трюк

Поместите это в свой onClic:

 moveTaskToBack(true); finish() 

Просто используйте код в своем обратном порядке

  Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); 

Он работает, используя только moveTaskToBack(true);

Попробуй это:

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

Если вы используете EventBus (или действительно любую другую паб / вспомогательную библиотеку) в своем приложении для связи между действиями, вы можете отправить им явное событие:

 final public class KillItWithFireEvent { public KillItWithFireEvent() {} public static void send() { EventBus.getDefault().post(new KillItWithFireEvent()); } } 

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

Это очистит Task (стек действий) и начнет новую задачу

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); System.exit(1); 

Если вы используете как завершение, так и выход из приложения,

Конец();

System.exit (0);