이 페이지에서는 앱에서 내비게이션 지도와 상호작용하는 방법에 관한 권장사항을 설명합니다.
가능하면 NavigationView
대신 SupportNavigationFragment
를 사용합니다.
SupportNavigationFragment
는
NavigationView
수명 주기 콜백에 따라 이를 관리할 필요가 없음
있습니다. 이 방법은 오류가 적게 발생하며
앱에서 탐색을 사용할 수 있습니다. SupportNavigationFragment
을 사용할 때는
NavigationView
수명 주기 이벤트를 호출합니다.
NavigationView
를 사용하는 경우 수명 주기 메서드를 호출할 때 엄격한 순서 지정
NavigationView
는 탐색 맵을 호스팅하고 Android 활동 및 프래그먼트로 수명 주기 이벤트를 밀접하게 따라 이러한 수명 주기 이벤트가 호출될 때 특정 작업을 실행합니다. NavigationView
는 NavigationView#onCreate
및 NavigationView#onStart
에서 여러 초기화를 실행하고, NavigationView#onStop
및 NavigationView#onDestroy
에서 정리 작업을 실행하며, 다른 수명 주기 이벤트가 처리될 때도 실행합니다.
NavigationView
수명 주기 메서드는 Android 활동이나 프래그먼트의 수명 주기 메서드와 동일한 의미를 갖습니다. 예를 들어 대략 NavigationView
의 onCreate()
입니다.
Android의 수명 주기 콜백으로 변환되고 이 객체를 통해 호출되어야 합니다.
합니다. NavigationView
수명 주기 콜백은 Android 수명 주기 콜백을 기반으로 하며 동일한 순서로 호출되므로 이러한 NavigationView 메서드의 강력한 순서 지정이 필요합니다. 그러지 않으면 메모리 누수, UI 오류, 위치가 업데이트되지 않는 등의 문제가 발생할 수 있습니다.
Android 활동 수명 주기에 관한 자세한 내용은 활동 수명 주기 개념 섹션을 참조하세요.
다음 표에서는 지정된 수명 주기 메서드를 사용합니다.
수명 주기 메서드 | 활동 수명 주기의 어느 위치에서 호출됨 | 어떤 수명 주기 메서드 후에 호출됨 |
---|---|---|
onConfigurationChanged()
|
UI가 포그라운드에 있고 구성이 변경될 때 호출됩니다. | 항상 onStart() 이후
|
onTrimMemory()
|
활동이 백그라운드에 있을 때 호출됩니다. | 항상 onPause() 이후
|
onSaveInstance()
|
활동이 소멸되기 전에 호출됩니다. | 항상 onStop() 이후
|
먼저 상응하는 닫기 메서드를 호출하지 않고 이러한 수명 주기 메서드를 여러 번 호출하지 마세요. 또한 이러한 Android 수명 주기 콜백 중 일부가 앱 자체에서 관리되고 NavigationView
가 생성 또는 시작 후에 프래그먼트에 추가되는 경우 앱은 Navigation SDK를 올바르게 초기화하기 위해 적절한 순서로 특정 메서드 자체를 호출해야 합니다.
이러한 메서드 사용에 관한 추가 안내는 Navigation SDK 데모 앱을 참고하세요.
NavigationView
를 사용하는 경우 활동이나 프래그먼트 중 하나만 수명 주기 이벤트 호출
수명 주기 메서드의 엄격한 순서를 유지하려면 이러한 이벤트를 수신하는 활동 또는 프래그먼트 수명 주기 콜백 정리해 보겠습니다 이 접근 방식을 사용하면 앱이 프래그먼트와 활동 간에 조정할 필요가 없으며 중복 호출이 발생하지 않습니다.