ProcessLifecycleOwner监听应用程序生命周期
他是针对整个应用程序的监听,与activity点数量无关。
Lifecycle.Event.ON_CREATE只会调用一次,Lifecycle.Event.ON_DESTROY永远不会调用。
public class MyApplicationObserver implements LifecycleObserver {
private static final String TAG = "MyApplicationObserver";
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void onCreate() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_CREATE");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_START");
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_STOP");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_PAUSE");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_RESUME");
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public void onDestroy() {
Log.d(TAG, "onCreate: Lifecycle.Event.ON_DESTROY");
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(new MyApplicationObserver());
}
}
我们需要在AndroidManifest文件里添加 android:name=".MyApplication"
。