本页面介绍了在以下位置与导航地图交互的最佳实践: 。
尽可能使用 SupportNavigationFragment
而非 NavigationView
SupportNavigationFragment
是一个封装容器,用于方便处理
NavigationView
生命周期回调,因此您无需管理这些回调
回调本身这种方法不容易出错,
在应用中使用 Navigation 组件。使用 SupportNavigationFragment
时,请勿
来调用 NavigationView
生命周期事件。
如果使用 NavigationView
,请在调用生命周期方法时使用严格的排序
NavigationView
会托管导航地图并严格遵循生命周期
并执行特定操作
所有事件。NavigationView
执行多个初始化
在NavigationView#onCreate
和NavigationView#onStart
上,以及清理
NavigationView#onStop
和 NavigationView#onDestroy
,以及
处理生命周期事件。
NavigationView
生命周期方法与 Android 中的含义相同
activity 或 fragment。例如,NavigationView
的onCreate()
大致如下
转换为并应由 Android 的生命周期回调调用
activity 或 fragment。由于 NavigationView
生命周期回调基于 Android 生命周期回调并按相同的顺序调用,因此必须对这些 NavigationView 方法进行严格排序。否则
体验记忆
泄漏、界面
错误、位置未更新等问题。
如需详细了解 Android activity 生命周期,请参阅 activity 生命周期概念 部分。
下表显示了在指定生命周期方法之后应何时调用其他生命周期方法:
生命周期方法 | 在 activity 生命周期的哪个阶段被调用 | 在哪个生命周期方法之后调用 |
---|---|---|
onConfigurationChanged()
|
当界面位于前台且配置发生变化时调用。 | 始终在 onStart() 之后
|
onTrimMemory()
|
当 activity 在后台运行时调用。 | 始终在 onPause() 之后
|
onSaveInstance()
|
在 activity 销毁前调用。 | 始终在 onStop() 之后
|
请勿在先调用相应的关闭方法之前多次调用这些生命周期方法。另外请注意
这些 Android 生命周期回调由应用本身管理,
NavigationView
会在创建或启动后添加到 fragment,应用
应按正确的顺序调用特定方法本身,
正确初始化 Navigation SDK。
如需有关如何使用这些方法的其他指导,请参阅 Navigation SDK 演示 app。
如果使用 NavigationView
,请从 activity 或 fragment 调用生命周期事件,但不能同时从二者调用
为了保持生命周期方法的严格排序,请从以下事件中调用这些事件: 接收这些事件的 activity 或 fragment 生命周期回调 。此方法可确保应用无需在 fragment 和 activity,导致重复调用。