先写一个类继承观察者 并增加注解
package com.anguomob.jecpack.observer
import android.util.Log
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
class ApplicationObserver : LifecycleObserver {
private val TAG = "ApplicationObserver"
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public fun onCreate() {
Log.e(TAG, "onCreate: ")
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public fun onStart() {
Log.e(TAG, "onStart: ")
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public fun onResume() {
Log.e(TAG, "onResume: ")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public fun onPause() {
Log.e(TAG, "onPause: ")
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public fun onStop() {
Log.e(TAG, "onStop: ")
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public fun onDestory() {
Log.e(TAG, "onDestory: ")
}
}
新建MyApplication类以此来进行对lifecycler的调用
调用方法也很简单
package com.anguomob.jecpack;
import android.app.Application;
import androidx.lifecycle.ProcessLifecycleOwner;
import com.anguomob.jecpack.observer.ApplicationObserver;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
//针对整个应用程序的监听,与Activity数量无关,
ProcessLifecycleOwner.get().getLifecycle().addObserver(new ApplicationObserver());
}
}
但是这个生命周期永远也走不到onDestory当中去。
好处就是 帮助开发者建立可感知的生命周期
组件在其内部管理自己的生命周期 从而降低模块的耦合度
降低内存泄露的可能性
Activitiy Fragment Service Application 均支持LifeCycler