막무가내 삽질 블로그

안드로이드 앱 포그라운드, 백그라운드 상태 확인하기 본문

Android

안드로이드 앱 포그라운드, 백그라운드 상태 확인하기

joong~ 2020. 4. 15. 13:36
728x90

앱이 포그라운드인지 백그라운드 인지 상태를 확인해서 이벤트 처리를 해야할 상황이 있었다.

 

예전 프로젝트에서는 액티비티에서 확인을 해서 로직을 처리했는데 이번에는 조금 더 수월하게 AAC 라이브러리를 활용하였다.

 

 

gradle 에 추가해 준다.

 

implementation 'android.arch.lifecycle:extensions:2.2.0' 

 

 

그 다음 LifecycleObserver 를 상속 받은 후 ProcessLifecycleOwner를 등록해 주고 어노테이션을 활용해 함수를 만들어서 사용하면 된다.

 

개발자 문서를 참고하면 된다.

 

 

전체코드

class TestActivity : TLSActivity(), LifecycleObserver {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun appStop() {
        println("appStop")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun appStart() {
        println("appStart")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun appCreate() {
        println("appCreate")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun appResume() {
        println("appResume")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    fun appDestroy() {
        println("appDestroy")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun appPause() {
        println("appPause")
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    fun appAny() {
        println("appAny")
    }

}

 

Comments