Я уверен, что этот вопрос задавали много раз, потому что я несколько раз читал. Мой клиент хочет, чтобы я поместил в его приложение кнопку, по которой пользователи могут щелкнуть и выйти. Я прочитал это и обнаружил, что звонок 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); } });
источник
Метод finishAffinity, выпущенный в API 16, закрывает все текущие действия и закрывает приложение:
this.finishAffinity();
Начиная с API 21 вы можете использовать:
Альтернативы:
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 программно
Надеюсь, это поможет! Удачи!
источник
Если вы хотите выйти из приложения, используйте этот код внутри события нажатия кнопки:
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);
источник
Фактически возможны две ситуации:
Вы можете выйти из активности, используя следующий код:
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());
?Как насчет
this.finishAffinity()
Из документов,
источник
источник
это очистит задачу (стек действий) и начнет новую задачу
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);
источник
@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); }
источник
поместите это в свой onClic:
moveTaskToBack(true); finish()
источник
movewTaskToBack
ничего не заканчивает, он просто скрывает приложение, и,finish
как упоминалось кем-то еще, завершает только текущийactivity
. Таким образом, он завершает текущую деятельность и скрывает остальное, если таковое имеется. В любом случае, он не должен получать голосование против только за это ...Попробуйте это во время звонка. Иногда я использую его при нажатии кнопки.
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Вместо того, чтобы закрывать ваше приложение, он открывает панель управления так, как будто ваше приложение закрыто.
прочтите этот вопрос для большей ясности android - код выхода из приложения
источник
Используйте this.finishAffinity (); на этой кнопке вместо finish (); Если это не сработает, вы также можете попробовать, добавив android: noHistory = "true" в свой манифест, а затем завершить свою деятельность с помощью uisng finish (); или finishAffinity ();
Надеюсь, это поможет....:)
источник
Достижение в Xamarin.Android:
public override void OnBackPressed() { MoveTaskToBack(true); Process.KillProcess(Process.MyPid()); Environment.Exit(1); }
источник
Просто вызовите эти две функции
finish(); moveTaskToBack(true);
источник
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); System.exit(1);
Используйте этот код, он очень полезен, и вы можете выйти из всех действий.
источник
Призрачная активность, вызываемая с помощью singletop и finish () в onCreate, должна помочь
источник
Работает только с
moveTaskToBack(true);
источник
Вместо System.exit (1) просто используйте System.exit (0)
источник
Если кто-то все еще задается вопросом, для Xamarin.Android (в моем случае на нем также работает Monogame) команда
FinishAndRemoveTask()
onActivity
выполняет свою работу очень хорошо!источник
во фрагменте
getActivity (). finishAndRemoveTask ();
в деятельности
finishAndRemoveTask ();
источник
просто используйте код в своей обратной печати
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain);
источник
Если вы используете EventBus (или любую другую библиотеку pub / sub) в своем приложении для связи между действиями, вы можете отправить им явное событие:
final public class KillItWithFireEvent { public KillItWithFireEvent() {} public static void send() { EventBus.getDefault().post(new KillItWithFireEvent()); } }
Единственным недостатком этого является то, что вам нужно, чтобы все действия прослушивали это событие, чтобы вызвать их собственные
finish()
. Для этого вы можете легко создавать классы активности прокладки через наследование, которые просто прослушивают это событие и позволяют подклассам реализовывать все остальное, а затем убедитесь, что все ваши действия наследуются от этого дополнительного уровня. Слушатели kill могут даже добавить некоторые дополнительные функции с помощью переопределений, например, предотвращение смерти в определенных конкретных ситуациях.источник
Просто запустите следующие две строки, когда хотите выйти из приложения.
android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1);
источник
finish(); finishAffinity(); System.exit(0);
работал на меня
источник
Просто назовите это:
источник
Свяжите этот метод с вашей кнопкой выхода / выхода
public void quitGame(View view) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAndRemoveTask(); } else { finish(); } }
источник
Если вы используете и завершение, и выход, ваше приложение полностью закроется
финиш();
System.exit (0);
источник