0

私は位置追跡機能をうまく実装したプロジェクトがあり、完璧に働いています。私は30秒ごとに融合ロケーションプロバイダを使ってユーザの現在位置を追跡しています(MainActivityが開始されたときに追跡が開始されます)。新しいアーキテクチャのコンポーネントでAndroidの現在の場所をトラッキングするにはどうすればよいですか?

今私は新しく導入されたアンドロイドアーキテクチャのコンポーネントでそのプロジェクトを更新するつもりです。しかし、ビューモデルで位置追跡を実装する方法はわかりません。MainActivityまたはApplicationクラスで、位置追跡を開始する適切な場所はどこですか? ViewModelまたはAndroidViewModelを使用する必要がありますか?これを達成する方法。

答えて

0

正しい方法は、デバイスの場所のバックグラウンドスレッドですべての計算を行うTrackingRepositoryです。場所を割り当てるMutableLiveDataを作成します。次に、postValue()またはsetValue()を使用して値を更新します。このMutableLiveDataのパブリックゲッターを作成します。このリポジトリはロケーションAPIです。

あなたのViewModelは、あなたのリポジトリのメソッドを呼び出し、その結果をViewModelLiveData変数に割り当てる必要があります。あなたのフラグメント/アクティビティで、あなたのViewModelのliveDataを観察してください。ちょうどGuide to App Architectureのように。

新しいアーキテクチャに本当に役立つ依存関係注入を忘れないでください。

+0

私は混乱しています。場所のアクセス権を尋ねる場所とサービスを開始する場所から、サンプルコードを入力してください。 –

+0

UIの場所権限を尋ねる必要がありますが、リポジトリを介してデバイスの場所にアクセスする必要があります。サービスをどこから始めるのか、本当に分かりません。まだ返信されていませんが、この投稿を参照してください(https://stackoverflow.com/questions/47265685/what-is-the-right-place-to-start-a-service-in-mvvm-architecture-android) –

関連する問題