Можно ли обнаружить выход приложения?

My Android-приложение позволяет запускать из него другие установленные приложения. Это показывает некоторые разрешенные приложения. Если пользователь попытается запустить запрещенное приложение, тогда покажите сообщение и вернитесь к моей активности (с которой каждый запуск приложения) с помощью запущенных задач. Мое приложение действует как домашний пусковой механизм. Так что это намерение, если это заблокированное приложение. Например: можно запустить Camera from Gallery в устройстве Samsung. Если камера не разрешена, отображается заблокированное сообщение и выйдет на мою acivity. Но при повторной запуске Gallery заблокированное сообщение снова появляется, потому что верхняя активность (активность камеры) находится в стеке.

Но выход из заблокированного приложения не работал отлично.

  • Возможно ли получить событие закрытия/выхода приложения?

  • Как я могу закончить приложение в целом (заканчивая все его приложения).

  • Как запустить приложение без истории предыдущего запуска?

Спасибо в Advance

Ответ 1

Можно ли получить событие закрытия/выхода приложения?

Да, возможно, внутри вашего LauncherActivity Вы можете override onDestroy этот метод вызывается при выходе приложения.

How can i finish an application as whole(By finishing all its applications)?

Я считаю, что вы хотите остановить все текущие действия здесь. Это может быть достигнуто несколькими способами.

android.os.Process.killProcess(android.os.Process.myPid());

или

Intent intent = new Intent(getApplicationContext(), YourHomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

Это очистит все действия и приведет пользователя к HomeActivity. Вызывая это, вы можете добавить флаг в намерение и использовать это значение, вы также можете завершить HomeActivity. Для завершения операции используйте метод finish().

Как запустить приложение, не имея истории предыдущих запустить?

Вы можете использовать то же самое выше Решение для достижения этого. Второй.

Надеюсь, это поможет.

В классе приложения существует метод onTerminate, но это невозможно использовать в рабочей среде. Подробнее об этом здесь