애플리케이션이 Foreground 를 확인 해야 할 때는 많습니다.
- 안드로이드 사용자중 홈버튼으로 앱을 종료 시키는 사람이 의외로 많다.
- 백그라운드 동작을 허용하지 않기 위해서는 포그라운드 인지 백그라운드 인지 확인을 해야 한다.
- api 26이 나오면서 권한 없이 사용 가능한 방법이 생겼다.
- Application.ActivityLifecycleCallbacks 를 이용하는 방법
- Application 상속받은 클래스에서 위 클래스를 구현해 주면 됩니다.
- 사용은 애플리케이션 상속 받은 코드에서 init 을 호출해서 사용하면 됩니다.
-
class OnApplication: Application() { override fun onCreate() { super.onCreate() Foreground.init(this) } }
- 애프리케이션 생성자에서 클래스를 초기화 합니다.
- 싱글톤 클래스라서 사용은 편하게 하시면 됩니다. 아래 처럼 원하는걸로 편하게 사용하면 됩니다.
- Foreground.get().isBackground
- Foreground.get().appStatus
- 전체 코드는 아래에 있습니다.
- 간단한 동작 설명
- onActivityStarted 추가 되면 카운트 +1
- onActivityStopped 추가 되면 카운트 -1
- 카운트가 0 이면 백그라운드
- 카운트가 1 보다 크면 포그라운드
- 카운트가 1 이면 포그라운드 전환
- 간단한 동작 설명