如何检测Android中何时有应用程序出现

时间:2018-10-02 19:46:19

标签: android android-activity kotlin foreground

我已经阅读了大量有关how to detect when app comes to foreground的信息,但找不到满意的答案。他们大多数都使用onResume()和onClose()方法并保持计数等

  

我正在开发一种加密货币应用程序,我必须要求输入密码   每当应用程序出现在前台时,这对我来说都是至关重要的。   它必须每次都要求输入密码。

所以这就是为什么我要确保默认情况下没有任何方法可以在android中检测到这种情况,那么最好的方法是什么?

3 个答案:

答案 0 :(得分:3)

现在,您可以在创建应用程序时向其添加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
    }

}

答案 1 :(得分:1)

您应该在onResume()方法中执行密码,因为这将是在再次运行活动之前调用的最后一个方法。

答案 2 :(得分:0)

您可以使用onWindowFocusChanged。