最近开发应用有这么一个需求,需要监听app的生命周期,能够感知到用户划到后台,回到前台这些事件。
Google以及帮我们实现好了,只需在项目中引入依赖
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
然后自定义一个 LifecycleObserver,在这里面实现生命周期事件对应的响应逻辑。
object AppLifecycleObserver : LifecycleEventObserver {
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
when (event) {
Lifecycle.Event.ON_RESUME -> {}
Lifecycle.Event.ON_STOP -> {}
}
}
}
在Application初始化时,注册这个LifecycleObserver
ProcessLifecycleOwner.get().lifecycle.addObserver(AppLifecycleObserver)
现在就可以轻松的监听App生命周期了。
按理说,软件逻辑应该是这样:当用户退到后台后,执行onStop方法。当用户切换回来时,执行onResume方法。
但是在测试的时候发现了这么一个问题,当退出应用又立马切回来的时候,并不会调用onStop和onResume方法。反反复复试了好几遍,就是存在这

本文探讨了在Android开发中遇到的ProcessLifecycleOwner在监听App前后台切换时存在的延迟问题,详细解析了源码背后的逻辑。由于监听Activity生命周期可能会混淆用户操作与内部Activity变化,Google设置了700毫秒的延时。解决方案包括缩短延时、使用信号量或请求官方添加新接口。
1789

被折叠的 条评论
为什么被折叠?



