ActivityLifecycleCallbacks is a great way of keeping track of all the activities in App.
현재 앱이 (BuPlusLauncher) 종료되었는지 실행중인지 확인하기 위해 프로세스 관련 메서드를 뒤지다 MainActivity 가 살아있는지 죽어있는지 트래킹하고 있으면 되지 않나 생각하게된 방법이다. Application class 에서 Activity 라이프 사이클의 콜백을 등록하는 메서드가 있다.
public final class MyApplication extends Application {
private BaseActivityLifecycleCallbacks baseALC;
@Override
public void onCreate() {
super.onCreate();
baseALC = new BaseActivityLifecycleCallbacks();
this.registerActivityLifecycleCallbacks(baseALC);
}
public BaseActivityLifecycleCallbacks getBaseALC() {
return baseALC;
}
}
Application.ActivityLifecycleCallbacks 인터페이스를 구현한 클래스를 Application 클래스에 등록하여 사용하면 되는것같다. 그래서 트래킹할 액티비티의 Lifecycle 상태를 변수로 관리하여 트래킹한다.