Android|Android App 前后台切换监听 & registerActivityLifecycleCallbacks
需要根据监听 App 前后台切换,看到一篇不错的文章,转换成Kotlin代码,记录如下:
【Android|Android App 前后台切换监听 & registerActivityLifecycleCallbacks】在Application中,写如下代码,亲测有效!
override fun onCreate() {
super.onCreate()
initBackgroundCallBack()
} /**
* 用以判断app何时切换到 前台,从而判断云信是否登录,未登录则进行登录(在其他页面被踢)
*
* registerActivityLifecycleCallbacks方法,
* 只要有一个activity的生命周期改变了,就会调用registerActivityLifecycleCallbacks的相应方法
*/private fun initBackgroundCallBack() {
var account = 0
var isRunInBackground = true
registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
}override fun onActivityResumed(activity: Activity?) {
}override fun onActivityPaused(activity: Activity?) {
}override fun onActivityStarted(activity: Activity?) {
account++
if (isRunInBackground) {
// 后台到前台,在此进行相应操作
isRunInBackground = false
}
}override fun onActivityStopped(activity: Activity?) {
account--
if (account == 0) {
// 前台到后台,在此进行相应操作
isRunInBackground = true
}
}override fun onActivityDestroyed(activity: Activity?) {
}override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {
}
})
}