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

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

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

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

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

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

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

 Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); 

Вы можете вызвать 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); } }); 

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

 public void onBackPressed() { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } 
  @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(); } 

Это слишком легко. Используйте 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()); 

для monoразработки просто используйте

 process.KillProcess(Process.MyPid()); 
 android.os.Process.killProcess(android.os.Process.myPid()); 

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

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

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

  @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); } 

С api 16 вы можете использовать метод finishAffinity, который, похоже, близок к закрытию всех связанных действий по его имени и описанию javadoc:

 this.finishAffinity(); 

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

Обратите внимание, что это финиш не позволяет доставлять результаты предыдущему действию, и если вы попытаетесь сделать это, будет выбрано исключение.

С api 21 вы можете использовать очень похожую команду

 finishAndRemoveTask(); 

Завершает все действия в этой задаче и удаляет их из списка недавних задач.

Альтернативы:

 getActivity().finish(); System.exit(0); 

 int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); 

 Intent i = new Intent(context, LoginActivity.class); i.putExtra(EXTRA_EXIT, true); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(i); 

Источник: как программно выйти из приложения Android

Надеюсь, поможет! Удачи!

Используйте this.finishAffinity (); на этой кнопке вместо finish (); Если он не работает, вы также можете попробовать, добавив в ваш манифест андроид: noHistory = “true”, а затем завершить свою деятельность с помощью uisng finish (); или finishAffinity ();

Надеюсь, поможет….:)

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

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

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

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

это очистит 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); 

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

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

 moveTaskToBack(true); finish() 

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

Достижение в Xamarin.Android:

  public override void OnBackPressed() { MoveTaskToBack(true); Process.KillProcess(Process.MyPid()); Environment.Exit(1); } 

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

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

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

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

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

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

Конец();

System.exit (0);

Вместо System.exit (1) Просто используйте System.exit (0)

Просто запустите следующие две строки, когда вы хотите выйти из приложения

 android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); 
  • Могу ли я хранить файлы изображений в firebase с помощью Java API
  • getString вне контекста или действия
  • Theme.AppCompat.Light.DarkActionBar - Ресурс не найден
  • Как двусмысленность в выборе перегруженных методов, разрешенных на Java?
  • Что такое IndexOutOfBoundsException? Как я могу это исправить?
  • Android - обновить контакт
  • Android ClassNotFoundException
  • чтение андроида jpeg EXIF ​​метаданные из обратного вызова изображения
  • Время ожидания экрана Android
  • Как закрыть другое приложение в Android?
  • API формата номера телефона Java
  • Interesting Posts

    Как «щелкнуть средним щелчком» по новым макроблокам

    Как округлить десятичное значение до двух знаков после запятой (для вывода на страницу)

    Windows 7 x64: 3900mb для использования 4 ГБ ОЗУ, даже если (почти) ничего не работает

    Скрытые особенности C ++?

    Как убедиться, что строка действительна JSON с использованием JSON.NET

    Целочисленное подразделение: как вы производите двойной?

    Как вертикально центрировать divs?

    OperationContext.Current имеет значение null после первого ожидания при использовании async / wait в службе WCF

    Windows 8.1 не может подключиться к одному конкретному устройству в локальной сети

    Как использовать кэширование вывода в обработчике .ashx

    Java 8 U40 TextFormatter (JavaFX) для ограничения ввода пользователя только для десятичного числа

    Обещание против наблюдаемого

    Communicator.exe берет 96% CPU

    Уменьшить размер MP4

    Могу ли я автоматически входить в ssh с помощью паролей из брелка OS X?

    Давайте будем гением компьютера.