Мне нужна помощь в архитектуре проекта. Я не могу получить, как ViewModel может взаимодействовать с Android-сервисом. Я создаю Inteface, который может вызывать некоторые функции платформы.MVVMCross ViewModel взаимодействует с Android-сервисом
public interface IGeoLocationWatcher
{
GeoLocation Location { get; set; }
void StartLocationService();
void StopLocationService();
}
А на андроид платформы я понимаю, этот интерфейс
[Service]
public class DroidGeolocationWatcher : Service,
Android.Gms.Common.Apis.GoogleApiClient.IConnectionCallbacks,
Android.Gms.Common.Apis.GoogleApiClient.IOnConnectionFailedListener,
Android.Gms.Location.ILocationListener,
IGeoLocationWatcher
{
public GeoLocation Location { get; set; }
public void StartLocationService();
public void StopLocationService();
}
Когда я получаю новое место, я призываю мое пользовательское сообщение (событие), подписавшимся в ViewModel. Если приложение в фоновом режиме отправляет уведомление или когда на переднем плане - я обновляю свой интерфейс.
WeakSubscribe<GeoLocationChangedMessage> ((s)=> {
Location = s;
RaisePropertyChanged(() => Location);
});
Но, похоже, он не работает. Мне нужно сообщить, что я делаю неправильно или другой подход. Спасибо за внимание.
Это не то, что я хочу, но спасибо за ответ. –