Как обнаружить, когда приложение выходит на передний план в Android - PullRequest
0 голосов
/ 02 октября 2018

Я много читал о how to detect when app comes to foreground, но не смог найти удовлетворительного ответа.Большинство из них используют методы onResume () и onClose () и ведут подсчет и т.д.очень критично в моем случае.Он должен каждый раз запрашивать код доступа.

Так вот почему я хочу заверить, что нет никакого способа обнаружить это в Android по умолчанию, если нет, то какой подход лучше?

Ответы [ 3 ]

0 голосов
/ 02 октября 2018

Теперь вы можете добавить LifecycleObserver в ваше приложение, когда оно будет создано, чтобы определять, когда ваше приложение переходит на передний план / фон.

class MyApp : Application() {

    private lateinit var appLifecycleObserver : AppLifecycleObserver

    override fun onCreate() {
        super.onCreate()
        appLifecycleObserver = AppLifecycleObserver()
        ProcessLifecycleOwner.get().lifecycle.addObserver(appLifecycleObserver)
    }
}


class AppLifecycleObserver() : LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onEnterForeground() {
        // App entered foreground
        // request passpharse
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onEnterBackground() {
        // App entered background
    }

}
0 голосов
/ 03 октября 2018

Вы можете использовать onWindowFocusChanged.

0 голосов
/ 02 октября 2018

Вы должны ввести код доступа в методе onResume (), так как это будет последний метод, вызванный перед повторным выполнением действия.

...