0

위치 추적 기능을 성공적으로 구현 한 프로젝트가 있으며 완벽하게 작동하고 있습니다. 나는 매 30 초마다 융합 위치 공급자를 사용하여 사용자의 현재 위치를 추적 중입니다. (MainActivity가 시작되면 추적이 시작됩니다).새로운 아키텍처 구성 요소로 안드로이드의 현재 위치를 추적하는 방법은 무엇입니까?

이제 새로 도입 된 안드로이드 아키텍처 구성 요소로 프로젝트를 업데이트 할 계획입니다. 그러나 뷰 모델로 위치 추적을 구현하는 방법을 모르겠습니다. MainActivity 또는 Application 클래스에서 위치 추적을 시작할 적절한 위치는 어디입니까? ViewModel 또는 AndroidViewModel을 사용해야합니까? 이것을 달성하는 방법.

답변

0

올바른 방법은 장치 위치의 백그라운드 스레드에서 모든 계산을 수행하는 TrackingRepository을 사용하는 것입니다. 위치를 할당 할 MutableLiveData을 만듭니다. 그런 다음 postValue() 또는 setValue()을 사용하여 값을 업데이트하십시오. 이 MutableLiveData에 대한 공용 getter를 작성하십시오. 이 저장소는 위치 API입니다.

그런 다음 ViewModel은 저장소의 메소드를 호출하고 그 결과를 변수 LiveData에 지정해야합니다. 그런 다음 귀하의 단편/활동에서 귀하의 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). –