Андроид как завершать программы

В этом посте будет показано, как принудительно остановить приложение на Galaxy S21. Читайте дальше, если вам нужна помощь в выполнении команды Android, которая принудительно завершает работу некорректного приложения на вашем новом устройстве Samsung.

Завершить процесс приложения с помощью принудительной остановки

Как и в компьютерных программах, в мобильных приложениях, подобных тем, которые вы загрузили и установили на свой смартфон, могут возникать случайные ошибки. и глюки в какой-то момент. Это когда определенное приложение внезапно перестает работать, не загружается или продолжает давать сбой.

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

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

Убрать иконку программы Android Monitor в уведомлениях

Если вам интересно, как выполнить эту команду на вашем новом смартфоне Samsung Galaxy S21, я предложил вам простое пошаговое руководство.

Вот как принудительно остановить приложение на Galaxy S21.

Простые шаги для принудительной остановки приложения на Galaxy S21

Также применим следующий метод с другими моделями, включая варианты Plus и Ultra. Предыдущие устройства Galaxy с той же версией программного обеспечения с вариантами S21 также использовали этот метод для принудительной остановки приложений или завершения процессов приложений.

1. Когда все будет готово, проведите вверх от нижней части главного экрана, чтобы получить доступ к средству просмотра приложений.

В средстве просмотра приложений вы увидите различные значки приложений или элементы управления ярлыками.

2. Нажмите значок Настройки , чтобы продолжить.

Откроется главное меню настроек вашего телефона. Здесь вы увидите список всех основных и расширенных функций, которыми вы можете активировать и управлять.

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

Затем загрузится меню приложений. Здесь вы увидите список всех ваших приложений, включая предустановленные и загруженные из Play Store.

4. Прокрутите вниз или вверх, чтобы найти приложение, которое вы хотите остановить. Чтобы продолжить эту демонстрацию, давайте просто возьмем приложение “Камера” в качестве примера. Итак, нажмите, чтобы выбрать Камера из списка.

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

Блокируем андроид голосом! годный лайфхак тоже такой пользуется

Под экраном находятся три основных элемента управления или команды.

5. Чтобы завершить процессы приложения «Камера», нажмите Force stop в правом нижнем углу.

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

6. Прочтите и просмотрите сообщение, а затем нажмите OK , чтобы подтвердить действие.

Это приведет к остановке всех процессов приложения и принудительному прекращению работы приложения камеры.

Чтобы принудительно остановить другие приложения, вернитесь в меню приложений и найдите и нажмите на него, чтобы получить доступ к информации о приложении.

Оттуда вы можете выполнить те же действия, чтобы выполнить команду принудительной остановки и убить все процессы для этого приложения.

Если вы принудительно закрываете приложения для работы с приложением связанных с проблемами и ошибками, затем также рекомендуется перезагрузить телефон или выполнить программный сброс. Это необходимо для очистки системного кеша и освобождения оперативной памяти.

Альтернативные инструменты для удаления приложений для Android

Помимо встроенной команды, вы также можете использовать стороннее программное обеспечение для принудительной остановки или завершения работы приложений. Среди последних программ-убийц, которые служат той же цели, можно назвать Force Stop Apps, Greenify, Advanced Task Manager, KillApps, Kaspersky Battery Life Saver and Booster, App Killer and Manager и Naptime, и это лишь некоторые из них. Эти приложения можно бесплатно загрузить через Play Маркет.

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

Надеюсь, это поможет!

Дополнительные видеоуроки

Чтобы просмотреть более подробные учебные материалы и видеоролики по устранению неполадок на различных мобильных телефонах и планшетах, посетите канал Droid Guy на YouTube в любое время.

Вы также можете прочитать:

  • Как принудительно закрыть приложения на Samsung Galaxy Tab S6
  • Facebook зависает на Galaxy S20 Plus
  • Камера Galaxy S20 не работает? Вот решение!

Источник: digitdocom.ru

Как выйти из приложения Android программно

Я не хочу запускать свое приложение в фоновом режиме после нажатия кнопки «Выход». Pls предлагает мне, могу ли я использовать любой из этих кодов для выхода из своего приложения? Если это так, какой код я могу использовать? Это хороший способ выйти из приложения на Android?

Читайте также:
Имя git не распознано как имя командлета функции файла сценария или выполняемой программы

Vignesh 13 июнь 2011, в 14:31
Поделиться
Здесь уже так много постов. stackoverflow.com/search?q=how+to+exit+an+android+app
Mudassir 13 июнь 2011, в 12:17
Возможный дубликат выхода из приложения — это осуждается?

CommonsWare 13 июнь 2011, в 14:02

используйте ‘System.exit (0);’ когда вы действительно хотите выйти из приложения. Я сделал это на неисправимой ошибке после показа пользователю сообщения. Если вам нужно, вы даже можете автоматически перезапустить приложение с помощью AlarmManager. Смотрите: blog.janjonas.net/2010-12-20/…

Someone Somewhere 01 авг. 2013, в 17:52
Показать ещё 1 комментарий
Поделиться:

29 ответов

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

this.finishAffinity();

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

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

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

finishAndRemoveTask();

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

sivi 04 янв. 2015, в 13:32
Поделиться

Определенно это правильный ответ! Это плохое решение для завершения приложения с помощью System.exit(0); , Спасибо за ваш ответ! Наконец-то я нашел достойное решение.

Antonio 29 май 2015, в 22:48
Знаете ли вы, есть ли другое решение по API 14? Спасибо
Script Kitty 29 нояб. 2015, в 23:15

Вы можете завершить () каждое действие по отдельности, либо закрыв приложение, либо в жизненном цикле действия.

sivi 30 нояб. 2015, в 06:09
Очистите все действия во втором приложении и вернитесь к первому приложению! Решите мою проблему 😉
li2 07 март 2016, в 08:00
Приятно знать, спасибо за трюк. Это лучше, чем «сырое» решение «System.exit (0);»
tryp 13 апр.

2016, в 08:50

Привет, я могу сделать это в службе намерений (GcmListenerService)? Служба намерений будет вызвана, когда придет pn.

Prashanth Debbadwar 07 сен. 2016, в 10:28

Когда я вызываю getActivity (). FinishAffinity (), он не вызывает мой класс приложения при нажатии на значок приложения, пока System.exit (0); работает.

Tasneem 12 дек. 2016, в 10:06
Это правильный ответ. Спасибо, я голосую.
Maykel Llanes Garcia 21 дек.

2017, в 15:51

ПРЕДУПРЕЖДЕНИЕ! this.finishAffinity () закрывает приложение, удаляя его из памяти, поэтому вы не будете получать push-сообщения и так далее.

Tincho825 19 фев. 2018, в 17:02

finishAndRemoveTask() не работает на устройстве Android N HTC One m9. Он только что закончил текущую деятельность. finishAffinity() сделал.

YellowJ 04 май 2018, в 03:23

Это решение работает в 99% случаев. Однако это не разрушит процесс, поэтому, например, Dagger не будет очищен. В тех редких случаях, когда требуется уничтожение процесса, System.exit(0) — единственное решение, которое сработало для меня.

Slav 27 июнь 2018, в 13:53

Метод finishAffinity () закрывает мое приложение, но когда я запускаю его с использованием ссылки, оно остается в фоновом режиме. Кто-нибудь знает, как остановить приложение Deeplink Start? Однако следующий фрагмент кода не полностью останавливает мое приложение (у меня minSdk = 19): public void onStopButton (View view)

iOS-Coder 22 авг. 2018, в 20:46
это просто замораживает мое приложение.
Eildosa 17 дек. 2018, в 13:40
Показать ещё 11 комментариев

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

это лучший способ выйти из приложения.

Лучшее решение для меня.

Devon 03 сен. 2014, в 11:17
Поделиться
Лучшее решение для меня. Спасибо Disonash.
EliaszKubala 05 сен. 2014, в 17:32
да, отлично работает!

Нужно позвонить в MainActivity, чтобы заставить его работать!
mz87 05 окт. 2014, в 21:59

Идеальное решение. Нет необходимости прерывать процесс, так как Android лучше знает управление памятью. Однако это обеспечивает решение для завершения действия, а также для выхода из приложения для удобства пользователя.

IAmTheSquidward 08 янв. 2015, в 05:25
Идеальное решение на самом деле. Исправлено много проблем. Благодарю.

superuserdo 13 янв. 2015, в 02:17
Antonio 29 май 2015, в 22:53
это не решение, оно не работает, если у вас есть стек действий
user3290180 12 авг. 2015, в 17:28
как указал user3290180, это не решение, когда у вас есть несколько действий
Jacky 06 дек. 2015, в 12:30
Не работает, если у вас есть ряд мероприятий.
naaz 23 янв.

2016, в 07:21

Это сработало для меня. Я пробовал таким образом, если (Build.VERSION.SDK_INT> = Build.VERSION_CODES.JELLY_BEAN) else Но getActivity (). FinishAffinity (); не очищает данные приложения полностью.

Читайте также:
Что такое программа ппми

Tasneem 12 дек. 2016, в 10:04

Как вы можете сказать «лучшее решение для вас». Вы не используете свое приложение; Ваш клиент использует ваше приложение.

Oskar 02 март 2017, в 09:25
Показать ещё 8 комментариев

Подумайте о том, действительно ли вам нужно убить приложение: почему бы не позволить ОС определить, где и когда нужно освобождать ресурсы?

В противном случае, если вы абсолютно уверены, используйте

finish();

Теперь, предполагая, что у нас это есть, вопрос здесь все еще имеет ответ, поскольку код, который вам нужен, если вы делаете что-либо с выходом, finish() . Очевидно, что вы можете иметь более одного вида деятельности и т.д., Но это не так. Позволяет выполнять некоторые из прецедентов

  • Вы хотите, чтобы пользователь оставил все из-за использования памяти и «не работал в фоновом режиме?» Doubtfull. Позвольте пользователю остановить определенные действия в фоновом режиме, но пусть ОС уничтожит любые ненужные ресурсы.
  • Вы хотите, чтобы пользователь не переходил к предыдущему действию вашего приложения? Ну, либо настройте его так, чтобы он этого не сделал, либо вам нужен дополнительный вариант. Если в большинстве случаев работает back = previous-activity, не будет ли пользователь просто нажимать домой, если он хочет сделать что-то еще?
  • Если вам нужен какой-то reset, вы можете узнать, было ли /how/etc ваше приложение закрыто, и если ваша активность снова становится фокусом, вы можете принять меры по этому поводу, показывая новый экран вместо перезапуска, где вы были.

Итак, в конце концов, finish() не убивает все, но это все еще инструмент, который вам нужен, я думаю. Если у вас есть «убить все действия», я еще не нашел его.

Nanne 13 июнь 2011, в 13:25
Поделиться

Вызов метода finish() не приведет к уничтожению приложения. finish() используется постоянно: Call this when your activity is done and should be closed. Это тот же эффект, что и нажатие кнопки «назад».

Tanner Perrien 13 июнь 2011, в 12:44
Готово убьет активность. чем это отличается от убийства приложения?
Nanne 13 июнь 2011, в 13:26

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

Tanner Perrien 13 июнь 2011, в 13:55
Большинство приложений Android имеют более одного вида деятельности.
CommonsWare 13 июнь 2011, в 14:03
Так что вам нужно убить более одного вида деятельности, правда, но концепция та же самая, не так ли?
Nanne 13 июнь 2011, в 15:36

Nanne — если у вас есть два действия, основное и вспомогательное, основное вызывает sub. из sub вы вызываете финиш — он закрывает sub и восстанавливает основной. Таким образом, действие (подпункт) было закрыто, но приложение теперь показывает главное.

Dave Appleton 16 сен. 2012, в 04:25
позвольте мне добавить кое-что.
Nanne 16 сен. 2012, в 07:01
Jabari 30 май 2013, в 05:13
закончить это не так .. App Steel работает
Peter 25 сен.

2014, в 08:02

Завершение действия слишком сильно отличается от завершения приложения с большим количеством действий и услуг. Это плохой ответ.

Romulus Urakagi Ts’ai 07 окт. 2014, в 04:23
Показать ещё 8 комментариев

Если вы будете использовать только finishAffinity(); без System.exit(0); ваше приложение будет закрыто, но выделенная память по-прежнему будет использоваться вашим телефоном, поэтому. если вы хотите, чтобы чистый и действительно вышел из приложения, используйте оба из них.

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

пример нажатием кнопки

public void exitAppCLICK (View view)

или если вы хотите что-то приятное, например, с диалоговым окном предупреждения с 3 кнопками ДА НЕТ и ОТМЕНА

// alertdialog for exit the app AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); // set the title of the Alert Dialog alertDialogBuilder.setTitle(«your title»); // set dialog message alertDialogBuilder .setMessage(«your message») .setCancelable(false) .setPositiveButton(«YES»), new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int id) < // what to do if YES is tapped finishAffinity(); System.exit(0); >>) .setNeutralButton(«CANCEL»), new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int id) < // code to do on CANCEL tapped dialog.cancel(); >>) .setNegativeButton(«NO»), new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int id) < // code to do on NO tapped dialog.cancel(); >>); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show();
Cristian Babarusi 18 янв.

2017, в 01:39
Поделиться
это правильный ответ, который я искал. Спасибо
driftwood 18 янв. 2018, в 02:56
Ravi Vaniya 22 янв. 2019, в 10:45

Я думаю, что приложение должно быть убито в каком-то случае. Например, приложение можно использовать только после входа в систему. Активность входа имеет две кнопки: «логин» и «отмена». Когда вы нажимаете кнопку «Отменить», это определенно означает «Завершить приложение». Никто не хочет, чтобы приложение было живым в фоновом режиме.

Читайте также:
Бесплатная программа бухгалтерские документы

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

sunghun 13 апр. 2012, в 02:29
Поделиться

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

Sydwell 04 июнь 2014, в 10:43
Пожалуйста, добавьте пример кода
030 17 март 2015, в 13:29

В андроиде отсутствует приложение, SampleActivity.this.finish(); завершит текущую деятельность.

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

Intent homeintent = new Intent(SampleActivity.this,SecondActivity.class); startActivity(homeintent); SampleActivity.this.finish();
san 12 июнь 2012, в 05:36
Поделиться
Очень хорошая идея!
SeyedPooya Soofbaf 29 май 2014, в 16:06

Создайте ExitActivity и объявите его в манифесте.

И вызовите ExitActivity.exit(context) для выхода из приложения.

vivek 14 июнь 2018, в 13:53
Поделиться

Это самый популярный ответ, но это взлом. Вызов функции Finish в onCreate будет выглядеть сбой на большинстве, если не на всех устройствах.

DoruChidean 25 окт. 2018, в 12:17

Хм это взломать, но не глюк. Сначала вызовите метод exit (), он идет поверх всех действий с четким верхом и задачами, а затем завершается сам. здесь вы выходите.

vivek 29 окт. 2018, в 07:38
Не забудьте объявить этот класс в своем манифесте. +1 за умный взлом хотя.
Taslim Oseni 03 дек. 2018, в 00:01

Показать ещё 1 комментарий

Вам лучше использовать finish() , если вы находитесь в Activity или getActivity().finish() , если находитесь в Fragment .

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

getActivity().finish(); System.exit(0);
Farruh Habibullaev 25 июль 2016, в 08:06
Поделиться

Это зависит от того, насколько быстро вы хотите закрыть свое приложение.

Безопасный способ закрыть приложение: finishAffinity();

Он закрывает ваше приложение после завершения обработки всех процессов. Это может потребоваться некоторое время. Если вы закрываете приложение таким образом и перезапустите его через короткое время, возможно, что ваше новое приложение работает в том же процессе. Со всеми незавершенными процессами и одноэлементными объектами старого приложения.

Если вы хотите быть уверенным, что ваше приложение полностью закрыто, используйте System.exit(0);

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

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

new ANRWatchDog(2000).setANRListener(new ANRWatchDog.ANRListener() < public void onAppNotResponding(ANRError error) < MainActivity.this.finishAffinity(); System.exit(0); >>).start(); for(int i = 0; i

Это убивает ваше приложение через 2 секунды без отображения диалогового окна ANR или чего-то подобного. Если вы удалите System.exit(0), запустите этот код и перезапустите приложение после его закрытия, вы столкнетесь с каким-то странным поведением, потому что бесконечный цикл все еще запущен.

Источник: overcoder.net

Android: закрытие приложения по кнопке «назад»

Но что-то мне говорит, что это не совсем верно и избыточно. Приложение — игра с libgdx, используется только одно Activity.

  • Вопрос задан более трёх лет назад
  • 36941 просмотр

Комментировать
Решения вопроса 0
Ответы на вопрос 2

Когда Вы закрываете приложение кнопной «Назад», то вызывается метод onDestroy(). Для этого перехватывать нажатие этой кнопки в методе onBackPressed() не имеет смысла. Достаточно сделать так:

public void onDestroy() moveTaskToBack(true);

Перехватывать нажатие кнопки «Назад» имеет смысл тогда, когда надо реализовать подтверждение выхода из игры или что-то в этом роде.

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

Если вы от Application не наследуетесь, и как следсвие не изпользуете другого Context кроме Context-а вашего Activity — то достаточно только finish(). Ну и плюс конечно, если вы сами создаете thread-ы то их лучше явным образом удалить.

Ответ написан более трёх лет назад
Нравится 2 3 комментария

Как правильно завершить свой поток в Actitvity в onDestroy? Не подумайте чего — все облазил — каких методов только не предлагается. Но видимо так?

public void onDestroy()

А если еще и SurfaceView используется, то нужно его принудительно завершать? удалять калбак из него? finish() при использовании SurfaceView не всегда закрывает приложение корректно — иногда появлzется исключение — видимо не закрывается поток рисования в SurfaceView, хотя в SurfaceView.onDestroy и делается drawingThread.interrupt().

и кстати — нужен ли runFinalizersOnExit если он «deprecated»
Короче у меня работоспособный вариант выглядит так примерно ACTIVITY:

//Это для пункта EXIT собственного меню public void destroy()

Но при этом у потока backgroundThread есть «чудо» переменная indicatorOfWork

public void destroy() < this.indicatorOfWork = false; try< this.join(); >catch() < >> public run() < while(this.indicatorOfWork)< doSomeWork(); >>

Тогда как должен выглядеть для кнопки НАЗАД этот метод?

//Это стандартное public void onDestroy()

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru