GetCallback, как только пользователь нажимает кнопку последнего приложения для Android 12 и выше.

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

  1. Когда пользователь нажимает кнопку «Домой», приложение сворачивается.
  2. Когда пользователь нажимает кнопку недавнего приложения, где приложение отображается, но теряет фокус.

До Android 12 я смог добиться этого следующими способами, поместив этот код в класс приложения.

      override fun onActivityResumed(activity: Activity) {
        activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
    }

override fun onActivityPaused(activity: Activity) {
        activity.window.setFlags(
            WindowManager.LayoutParams.FLAG_SECURE,
            WindowManager.LayoutParams.FLAG_SECURE
        )
    }

Но для устройств под управлением Android 12 и выше обратный вызов не отправляется наonActivityPausedна случай2. И бывает только на случай1
Другой способ для этого работать

      override fun onWindowFocusChanged(hasFocus: Boolean) {
    super.onWindowFocusChanged(hasFocus)
    if (!hasFocus) {
        Timber.d("Ujjwal: Lost focus")
    }
}

Но есть 2 проблемы:

  1. Мне нужно будет указать все действия или некоторые BaseActivity
  2. Бывают случаи, когда поток переходит к стороннему SDK, у которого запущена собственная активность, этот обходной путь не будет работать в этих сценариях.

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

0 ответов

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