Есть ли способ убить мое приложение, кроме android.os.Process.killProcess и Sytem.exit(0)?

У меня проблема с моим приложением. Мне действительно нужно убить его, когда пользователь нажимает "Выход". Я попробовал оба метода, перечисленных в заголовке вопроса, и вот проблема: у меня есть постоянный (на переднем плане) сервис, выполняющий работу, поэтому для моего приложения есть иконка в трее. Когда пользователь переключается на мое приложение через этот значок, а затем нажимает "Выход" - приложение убивает, но Android немедленно перезапускает его. Если пользователи переключаются обратно в приложение любым другим способом (кроме значка службы) - приложение не перезапускается при выходе.

Итак, каков надежный способ убить приложение?

PS В приложении всегда есть только одно действие, если это имеет какое-либо значение.

3 ответа

Решение

Я нашел решение своей проблемы. Если я перенесу свою деятельность на задний план с moveTaskToBack(true); а затем убить процесс не перезапускается.

Только для одного Activity, Я выбираю finish(),

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

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

и вызовите finish(), прежде чем вызывать это намерение.

Другие вопросы по тегам