탐색 지도 상호작용 권장사항

이 페이지에서는 앱에서 내비게이션 지도와 상호작용하는 권장사항을 설명합니다.

가능한 경우 NavigationView 대신 SupportNavigationFragment 사용

SupportNavigationFragmentNavigationView 수명 주기 콜백을 편리하게 처리하기 위한 래퍼이므로 이러한 콜백을 직접 관리할 필요가 없습니다. 이 메서드는 오류가 적게 발생하며 앱에서 Navigation을 사용하는 데 권장되는 방법입니다. SupportNavigationFragment를 사용할 때는 NavigationView 수명 주기 이벤트를 호출하지 않아야 합니다.

NavigationView를 사용하는 경우 수명 주기 메서드를 호출할 때 엄격한 순서를 사용합니다.

NavigationView는 탐색 맵을 호스팅하고 Android 활동 및 프래그먼트로 수명 주기 이벤트를 밀접하게 따라 이러한 수명 주기 이벤트가 호출될 때 특정 작업을 실행합니다. NavigationViewNavigationView#onCreateNavigationView#onStart에서 여러 초기화를 실행하고, NavigationView#onStopNavigationView#onDestroy에서 정리 작업을 실행하며, 다른 수명 주기 이벤트가 처리될 때도 실행합니다.

NavigationView 수명 주기 메서드는 Android 활동이나 프래그먼트의 수명 주기 메서드와 동일한 의미를 갖습니다. 예를 들어 NavigationViewonCreate()는 대략 Android 활동 또는 프래그먼트의 수명 주기 콜백에 의해 호출되어야 하는 값으로 변환됩니다. NavigationView 수명 주기 콜백은 Android 수명 주기 콜백을 기반으로 하며 동일한 순서로 호출되므로 이러한 NavigationView 메서드의 강력한 순서 지정이 필요합니다. 그러지 않으면 메모리 누수, UI 오류, 위치가 업데이트되지 않는 등의 문제가 발생할 수 있습니다.

Android 활동 수명 주기에 관한 자세한 내용은 Android 개발자 문서의 활동 수명 주기 개념 섹션을 참고하세요.

다음 표에는 지정된 수명 주기 메서드 후에 다른 수명 주기 메서드를 호출해야 하는 시점이 나와 있습니다.

수명 주기 메서드 활동 수명 주기의 어느 위치에서 호출됨 어떤 수명 주기 메서드 후에 호출됨
onConfigurationChanged() UI가 포그라운드에 있고 구성이 변경될 때 호출됩니다. onStart() 후 항상
onTrimMemory() 활동이 백그라운드에 있을 때 호출됩니다. onPause() 후 항상
onSaveInstance() 활동이 소멸되기 전에 호출됩니다. 항상 onStop() 뒤에

먼저 상응하는 닫기 메서드를 호출하지 않고 이러한 수명 주기 메서드를 여러 번 호출하지 마세요. 또한 이러한 Android 수명 주기 콜백 중 일부가 앱 자체에서 관리되고 NavigationView가 생성 또는 시작 후에 프래그먼트에 추가되는 경우 앱은 Navigation SDK를 올바르게 초기화하려면 적절한 순서로 특정 메서드 자체를 호출해야 합니다.

이러한 메서드 사용에 관한 추가 안내는 Navigation SDK 데모 앱을 참고하세요.

NavigationView를 사용하는 경우 활동 또는 프래그먼트 중 하나에서 수명 주기 이벤트를 호출합니다.

수명 주기 메서드의 엄격한 순서를 유지하려면 이러한 이벤트를 순서대로 수신하는 활동 또는 프래그먼트 수명 주기 콜백에서 이러한 이벤트를 호출합니다. 이 접근 방식을 사용하면 앱이 프래그먼트와 활동 간에 조정할 필요가 없으며 중복 호출이 발생하지 않습니다.