android get foreground activity

냠냠·2022년 5월 12일
0

android

목록 보기
2/5

Application 을 상속받는 클래스에서

ActivityLifecycleCallbacks 프로퍼티 생성 후

onCreate() 에서 registerActivityLifecycleCallbacks 함수의 파라미터로 해당 프로퍼티를 넘겨주면 activity life cycle 마다 해당 콜백이 불려진다.

현재 foreground activity에 접근하기 위한 코드는 다음과 같다.

Class MyApplication: Application() {
	var currentActivity: Activity? = null
    
    private val activityLifecycleCallbacks = object: ActivityLifecycleCallbacks {
        override fun onActivityCreated(p0: Activity, p1: Bundle?) {
            currentActivity = p0
        }

        override fun onActivityStarted(p0: Activity) {
            currentActivity = p0
        }

        override fun onActivityResumed(p0: Activity) {
            currentActivity = p0
        }

        override fun onActivityPaused(p0: Activity) {
        }

        override fun onActivityStopped(p0: Activity) {
        }

        override fun onActivitySaveInstanceState(p0: Activity, p1: Bundle) {
        }

        override fun onActivityDestroyed(p0: Activity) {
        }
    }
   
   	override fun onCreate() {
    	registerActivityLifecycleCallbacks(activityLifecycleCallbacks)
    }
}

이후 코드 상에서 아래와 같이 currentActivity 에 접근 가능합니다.

(application as MyApplication).currentActivity

0개의 댓글