Android

NavBackStackEntry의 Lifecycle은 Activity의 Lifecycle과 다르다

bmsk_kun 2024. 8. 14. 14:07
private fun popBackStack() {

    Log.e("MainNavigator", "popBackStack start")
    navController.currentBackStack.value.forEach {
        Log.e(
            "MainNavigator",
            "${it}:: " + it.lifecycle.currentState.toString()
        )
    }

    if (navController.currentBackStackEntry?.lifecycle?.currentState == Lifecycle.State.RESUMED) {
        navController.popBackStack()
    }
    
    Log.e("MainNavigator", "popBackStack end")

    navController.currentBackStack.value.forEach {
        Log.e(
            "MainNavigator",
            "${it}:: " + it.lifecycle.currentState.toString()
        )
    }
}

 

화면을 A-B-C-D-E-F-G ... 이렇게 쌓은 뒤

popBackStack() 하면서 로그를 관찰해보면 좋다.

 

당연하게도 Jetpack Compose로 구현해도 동일하다

728x90
반응형