Близкое приложение и главный экран запуска на Android

У меня есть две различных операции. Первые запуски второй. Во втором действии я звоню System.exit(0) чтобы вынудить приложение закрыться, но первое действие автоматически отображено вместо приложения, возвращающегося к главному экрану. Как я могу избежать этого и заставить приложение возвращаться к главному экрану?

75
задан Makoto 30 July 2012 в 13:00
поделиться

6 ответов

Вы действительно должны подумать о том, чтобы не выходить на приложение. Это не так, как обычно работают приложения для Android.

45
ответ дан 24 November 2019 в 11:26
поделиться

Вы не можете сделать System.exit(), это небезопасно.

Вы можете сделать это: Process.killProcess(Process.myPid());

4
ответ дан 24 November 2019 в 11:26
поделиться

Краткий ответ: Вызов MOVETASKTOBACK (TRUE) на вашем активности вместо System.exit () . Это скрыт ваше приложение, пока пользователь не хочет использовать его снова.

Чем дольше ответа начинается с другого вопроса: почему вы хотите убить свое приложение?

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

До тех пор, пока вы , отвечая на события жизненного цикла соответственно , ни вы, ни пользователю не должны заботиться, если ваше приложение все еще работает или нет.

Так что, если вы хотите скрыть свое приложение Call MOVETASKTOBACK () и пусть Android решит, когда убить его.

88
ответ дан 24 November 2019 в 11:26
поделиться

Вы также можете указать noHistory = "true" в теге для первого действия или закончить первое действие, как только Вы начнете второе (как сказал Дэвид).

AFAIK, "force close" убивает процесс, в котором хостится JVM, в котором запущено ваше приложение, и System.exit() завершает работу JVM, выполняющего экземпляр вашего приложения. Оба варианта являются формой резких окончаний и не рекомендуются для нормального потока приложений.

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

9
ответ дан 24 November 2019 в 11:26
поделиться

При запуске второй активности Fine () Первый немедленно:

startActivity(new Intent(...));
finish();
8
ответ дан 24 November 2019 в 11:26
поделиться

android.os.Process.killProcess (android.os.Process.myPid ()); работает нормально, но рекомендуется позволить платформе Android позаботиться об управлении памятью: -)

6
ответ дан 24 November 2019 в 11:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: