前言
ProcessLifecycleOwner是Android Jetpack架构中的一个组件,用于监听整个应用程序的生命周期。它允许开发者在应用程序级别监听进程的生命周期事件,例如进程的创建和销毁,从而可以在应用级别执行一些操作,如资源清理、初始化等。
监听App的生命周期方式一
fun setStatusListener(){
ProcessLifecycleOwner.get().lifecycle.addObserver(object :DefaultLifecycleObserver{
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
}
override fun onResume(owner: LifecycleOwner) {
super.onResume(owner)
}
override fun onPause(owner: LifecycleOwner) {
super.onPause(owner)
}
override fun onStart(owner: LifecycleOwner) {
super.onStart(owner)
}
override fun onStop(owner: LifecycleOwner) {
super.onStop(owner)
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
}
})
}
监听App的生命周期方式二
fun setStatusListener() {
ProcessLifecycleOwner.get().lifecycle.addObserver(object : LifecycleEventObserver{
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
when(event){
Lifecycle.Event.ON_CREATE -> {
Log.e(TAG, "创建")
}
Lifecycle.Event.ON_START -> {
Log.e(TAG, "启动")
}
Lifecycle.Event.ON_RESUME -> {
Log.e(TAG, "恢复")
}
Lifecycle.Event.ON_PAUSE -> {
Log.e(TAG, "暂停")
}
Lifecycle.Event.ON_STOP -> {
Log.e(TAG, "停止")
}
Lifecycle.Event.ON_DESTROY -> {
Log.e(TAG, "销毁")
}
Lifecycle.Event.ON_ANY -> {
Log.e(TAG, "其他")
}
}
}
})
}
判断当前App的生命周期
/**
* 获取当前状态
*/
public fun getCurrentState(): Lifecycle.State {
return ProcessLifecycleOwner.get().lifecycle.currentState
}
/**
* 判断是否在前台
*/
fun isAppForeground(): Boolean {
return getCurrentState() == Lifecycle.State.RESUMED
}
/**
* 判断是否在初始化
*/
fun isAppBackground(): Boolean {
return getCurrentState() == Lifecycle.State.INITIALIZED
}
本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/18676832
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2019-03-06 Android 开发 Fresco框架点击小图显示全屏大图实现 ZoomableDraweeView