У моего Android-приложения есть WebView
, для которого требуется плагин Flash. Веб-просмотр предоставит ссылку на рынок для Adobe Flash, если она не установлена. После установки Flash единственный способ создать экземпляр в моем приложении - принудительно завершить работу и перезапустить приложение. Я хотел бы представить пользователю кнопку, которая делает это для них, потому что слишком сложно для случайных пользователей открыть свои запущенные процессы и принудительно выйти из приложения вручную. Что такое Java-код для реализации такой кнопки перезапуска?
Как заставить выйти из приложения Android и перезапустить его?
Ответ 1
Вы можете перезапустить приложение в два этапа:
- Убейте свой собственный процесс. использование
Process.myPid()
, передайте его вProcess.killProcess()
. Возможно, вам нужно будет добавить разрешение на ваш манифест (возможно,android.permission.KILL_BACKGROUND_PROCESSES
), чтобы он работал. - Прежде чем вы убьете свой собственный процесс, зарегистрируйте будильник с ожидающим намерения перезапустить свою деятельность в ближайшем будущем. Второй параметр
alarm.set
-triggerAtTime
. Установка этого параметра на 0 приводит к немедленному срабатыванию будильника. В приведенном здесь примере задается время для запуска приложения через секунду в будущем.
Код выглядит следующим образом:
AlarmManager alm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
alm.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, PendingIntent.getActivity(this, 0, new Intent(this, this.getClass()), 0));
Ответ 2
Предположим, вы могли бы вызвать finish, чтобы остановить активность, но вы не сможете снова запустить приложение. Для этого потребуется (если это возможно) корень, и это будет ужасная идея. Это означало бы, что любое приложение может начинаться с самого начала, когда захочет: это просто плохая идея и на самом деле будет ошибкой, если это возможно.
Ответ 3
вы можете выйти из приложения с помощью System.exit(0): это не требует разрешения для вашего приложения.