GetCallback, как только пользователь нажимает кнопку последнего приложения для Android 12 и выше.
Я хочу получить обратный вызов, как только выйдет из приложения. Это должно включать 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 проблемы:
- Мне нужно будет указать все действия или некоторые BaseActivity
- Бывают случаи, когда поток переходит к стороннему SDK, у которого запущена собственная активность, этот обходной путь не будет работать в этих сценариях.
Может ли кто-нибудь помочь здесь.
Основная цель заключается в том, что всякий раз, когда пользователь выходит из приложения, приложение не должно делать снимок экрана и показывать эти данные на последнем экране приложения из-за безопасности и конфиденциальных данных.
Реализация должна быть выполнена в классе приложения и должна работать для всех версий Android.