我已经阅读了大量有关how to detect when app comes to foreground
的信息,但找不到满意的答案。他们大多数都使用onResume()和onClose()方法并保持计数等
我正在开发一种加密货币应用程序,我必须要求输入密码 每当应用程序出现在前台时,这对我来说都是至关重要的。 它必须每次都要求输入密码。
所以这就是为什么我要确保默认情况下没有任何方法可以在android中检测到这种情况,那么最好的方法是什么?
答案 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。