このページでは、Google でナビゲーション マップを操作する際のベスト プラクティスについて説明します。 説明します。
可能な限り、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
を使用する場合は、アクティビティまたはフラグメントのいずれかからライフサイクル イベントを呼び出します。
ライフサイクル メソッドの順序を厳密に保つには、これらのイベントを順番に受け取るアクティビティまたはフラグメントのライフサイクル コールバックからこれらのイベントを呼び出します。このアプローチでは、アプリがフラグメントとアクティビティを調整して重複する呼び出しを発生させる必要がなくなります。