Как закрыть приложение для Android, если в активном состоянии находится более одного действия?
Выйти из приложения для Android
- Что вы подразумеваете под в активном состоянии? 28.02.2011
- Наконец я могу выйти из приложения. скоро обновлю методы, которым я следовал 28.02.2011
- Я использовал следующие три шага: 1) Используйте startActivityForResult(....) вместо startActivity 2) Когда нажата кнопка выхода, напишите следующий setResult(RESULT_CLOSE_ALL); финиш(); 3) @Override protected void onActivityResult (int requestCode, int resultCode, Intent data) { switch (resultCode) { case RESULT_CLOSE_ALL: setResult (RESULT_CLOSE_ALL); финиш(); } super.onActivityResult(код запроса, код результата, данные); } 28.02.2011
Ответы:
В сообщении блога под названием Выход из приложения Android показано, как выйти из Android-приложение:
Когда пользователь хочет выйти из всех открытых действий, он должен нажать кнопку, которая загружает первое действие, которое запускается при запуске вашего приложения, в моем случае «LoginActivity».
Intent intent = new Intent(getApplicationContext(), LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); startActivity(intent);
Приведенный выше код очищает все действия, кроме LoginActivity. LoginActivity — это первое действие, которое вызывается, когда пользователь запускает программу. Затем поместите этот код в onCreate LoginActivity, чтобы сигнализировать, когда он должен самоуничтожиться при передаче сообщения «Выход».
if (getIntent().getBooleanExtra("EXIT", false)) { finish(); }
У меня есть простое решение этой проблемы
Из действия, которое вы нажимаете на кнопку выхода, переходите к первому действию, используя следующий исходный код. Прочтите также документацию для FLAG_ACTIVITY_CLEAR_TOP.
Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Теперь переопределите onResume() первого действия, используя finish()
Ответ прост: вам действительно не нужно «закрывать» приложение для Android. Если активность больше не проявляется, система через некоторое время завершит процесс. Пользователи могут закрыть действия, нажав кнопку «Назад». Рето Мейер довольно хорошо объясняет это здесь: http://blog.radioactiveyak.com/2010/05/when-to-include-exit-button-in-android.html
Вы также можете прочитать эту тему; это очень полезно, если не сказать больше: Выход из приложения Android - это не одобряется ?
Ну, вы не должны закрывать свои приложения, так как система управляет этим. Обратитесь к сообщениям/темам в других ответах для получения дополнительной информации.
Однако, если вы действительно, действительно хотите, вы все равно можете вызвать System.exit (0);
, как и в любом другом Java-приложении.
РЕДАКТИРОВАТЬ
ActivityManager actmgr = (ActivityManager) this.getSystemService (Context.ACTIVITY_SERVICE);
actmgr.restartPackage ("com.android.your.package.name");
Я кое-что вспомнил. Я пытался использовать этот код для перезапуска своего приложения, но ему удалось только убить мое приложение. Вы можете попробовать и посмотреть, работает ли это для вас.
Я задал аналогичный вопрос пару недель назад. Просмотрите ответы и комментарии для более перспективных и возможных решений.
IMO выход из приложения зависит от того, что делает ваше приложение, и от ожиданий пользователя. Хотя я понимаю причину отсутствия кнопки выхода, я также считаю, что это выбор, который разработчик приложения должен сделать в зависимости от ситуации.
Как только ваша последняя активность потеряет фокус, Android выгрузит ваш процесс в соответствии с текущими потребностями системы / свободными ресурсами. Вам на самом деле на это наплевать - просто используйте жизненный цикл onStart, OnStop и т. д. для управления своим состоянием.
Если вы хотите выйти из одного действия Android, вы вернетесь к предыдущему действию или другому действию из определенного места в текущем действии.
finish();
System.exit(0);