dependencies {
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(AppLifecycleListener.getInstance());
}
}
public class AppLifecycleListener implements LifecycleObserver {
private static AppLifecycleListener instance;
public static AppLifecycleListener getInstance() {
if (instance == null) {
instance = new AppLifecycleListener();
}
return instance;
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForeground() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackground() {
}
}
<application
android:name=".MyApplication"
...
>
...
</application>
public class MyActivity extends AppCompatActivity implements LifecycleOwner {
private LifecycleRegistry lifecycleRegistry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lifecycleRegistry = new LifecycleRegistry(this);
lifecycleRegistry.addObserver(AppLifecycleListener.getInstance());
getLifecycle().addObserver(AppLifecycleListener.getInstance());
setContentView(R.layout.activity_main);
}
@Override
public Lifecycle getLifecycle() {
return lifecycleRegistry;
}
}