本頁面說明與應用程式中 Navigation 地圖互動的最佳做法。
盡可能使用 SupportNavigationFragment
取代 NavigationView
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 活動生命週期,請參閱 Android 開發人員文件中的「活動生命週期概念」一節。
下表顯示了在 指定的生命週期方法:
生命週期方法 | 在活動生命週期中的哪個位置叫用 | 在哪個生命週期方法之後叫用 |
---|---|---|
onConfigurationChanged()
|
在 UI 位於前景且設定變更時叫用。 | 一律在 onStart() 之後 |
onTrimMemory()
|
在活動於背景時叫用。 | 一律在 onPause() 之後
|
onSaveInstance()
|
在活動刪除前呼叫。 | 一律在 onStop() 後
|
請勿在未先呼叫對應的關閉方法的情況下,多次呼叫這些生命週期方法。此外,請注意
這些 Android 生命週期回呼是由應用程式本身管理,且
系統會在應用程式建立或啟動後,將 NavigationView
新增至片段
應以正確順序呼叫特定方法,
正確初始化 Navigation SDK。
如需有關這些方法的其他使用指南,請參閱 Navigation SDK 示範影片 app。
如果使用 NavigationView
,請從活動或片段叫用生命週期事件,不要同時叫用兩者
如要維持生命週期方法的嚴格順序,請從下列位置叫用這些事件: 接收這些事件的活動或片段生命週期回呼 順序。這種做法可確保應用程式不需彼此協調 片段和活動,並造成重複的呼叫。