導航地圖互動的最佳做法

本頁面說明與應用程式中 Navigation 地圖互動的最佳做法。

盡可能使用 SupportNavigationFragment 取代 NavigationView

SupportNavigationFragment 是用於處理 NavigationView 生命週期回呼,因此您不需要管理這些回呼 回呼函式本身這種方法比較不容易出錯 在應用程式中使用導航功能。使用 SupportNavigationFragment 時,請注意 叫用 NavigationView 生命週期事件。

如果使用 NavigationView,請在叫用生命週期方法時使用嚴格排序

NavigationView 會代管導覽圖,並密切追蹤 Android 活動和片段的生命週期事件,在這些生命週期事件叫用時採取特定動作。NavigationView 會在 NavigationView#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 示範影片 app

如果使用 NavigationView,請從活動或片段叫用生命週期事件,不要同時叫用兩者

如要維持生命週期方法的嚴格順序,請從下列位置叫用這些事件: 接收這些事件的活動或片段生命週期回呼 順序。這種做法可確保應用程式不需彼此協調 片段和活動,並造成重複的呼叫。