class AppLifecycle : Application.ActivityLifecycleCallbacks {
private val tag = javaClass.simpleName
private var mActivityCount = 0
private var isAppForeground = true
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
LogUtil.logD(tag, "onActivityCreated ${activity.javaClass.simpleName}")
}
override fun onActivityStarted(activity: Activity) {
LogUtil.logD(tag, "onActivityStarted ${activity.javaClass.simpleName}")
mActivityCount++
if (mActivityCount > 0 && !isAppForeground) {
LogUtil.logD(tag, "应用回到前台")
isAppForeground = true
BroadcastUtil.sendLocalBroadcast(activity, ACTION_UPLOAD_POSITION)
}
}
override fun onActivityResumed(activity: Activity) {
LogUtil.logD(tag, "onActivityResumed ${activity.javaClass.simpleName}")
}
override fun onActivityPaused(activity: Activity) {
LogUtil.logD(tag, "onActivityPaused ${activity.javaClass.simpleName}")
}
override fun onActivityStopped(activity: Activity) {
LogUtil.logD(tag, "onActivityStopped ${activity.javaClass.simpleName}")
mActivityCount--
if (mActivityCount == 0) {
isAppForeground = false
LogUtil.logD(tag, "应用退到后台")
}
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
LogUtil.logD(tag, "onActivitySaveInstanceState ${activity.javaClass.simpleName}")
}
override fun onActivityDestroyed(activity: Activity) {
LogUtil.logD(tag, "onActivityDestroyed ${activity.javaClass.simpleName}")
}
}
在您的项目中的Application的onCreate方法中加入:
registerActivityLifecycleCallbacks(AppLifecycle())
即可。