ProcessLifecycleOwner listens to the application lifecycle.
It monitors the entire application and has nothing to do with the number of activity points.
Lifecycle.Event.ON_CREATE will only be called once, Lifecycle.Event.ON_DESTROY will never be called.
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());
}
}
We need to add it in the AndroidManifest file android:name=".MyApplication"
.