ProcessLifecycleOwner.get().lifecycle.addObserver(LifecycleObserver observer)
ProcessLifecycleOwner.get().lifecycle.addObserver(object: DefaultLifecycleObserver {
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
}
override fun onStart(owner: LifecycleOwner) {
super.onStart(owner)
}
override fun onResume(owner: LifecycleOwner) {
super.onResume(owner)
}
override fun onPause(owner: LifecycleOwner) {
super.onPause(owner)
}
override fun onStop(owner: LifecycleOwner) {
super.onStop(owner)
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
}
})
ProcessLifecycleOwner.get().lifecycle.addObserver(object: LifecycleEventObserver {
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
when (event) {
Lifecycle.Event.ON_CREATE -> {
Log.e("ProcessLifecycleOwner", "ON_CREATE")
}
Lifecycle.Event.ON_START -> {
Log.e("ProcessLifecycleOwner", "ON_START")
}
Lifecycle.Event.ON_RESUME -> {
Log.e("ProcessLifecycleOwner", "ON_RESUME")
}
Lifecycle.Event.ON_PAUSE -> {
Log.e("ProcessLifecycleOwner", "ON_PAUSE")
}
Lifecycle.Event.ON_STOP -> {
Log.e("ProcessLifecycleOwner", "ON_STOP")
}
else -> {}
}
}
})
判断当前activity
class MyApplication : Application() {
private var currentActivityRef: WeakReference<Activity>? = null
fun getCurrentActivity(): Activity? {
return currentActivityRef?.get()
}
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
override fun onActivityResumed(activity: Activity) {
currentActivityRef = WeakReference(activity)
}
override fun onActivityPaused(activity: Activity) {}
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}
override fun onActivityStarted(activity: Activity) {}
override fun onActivityStopped(activity: Activity) {}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
override fun onActivityDestroyed(activity: Activity) {
if (getCurrentActivity() == activity) {
currentActivityRef = null
}
}
})
}
}