служба определения местоположения и IlocationListener не работают должным образом - PullRequest
0 голосов
/ 06 июня 2019

Я запускаю LocationService в формах Xamarin во время входа в систему.И этот сервис работает каждые 5 минут, выбирает местоположение и сохраняет в локальной БД.По какой-то неизвестной причине служба определения местоположения не работает через несколько часов.

Всякий раз, когда приложение убивается и открывается, я проверяю, остановилась ли служба.Если он остановлен, я снова запускаю службу следующим образом:

В OnStart и OnResume я проверяю запуск службы следующим образом:

bool IsLocationServiceRunning = DependencyService.Get<IServiceRunning>().IsServiceRunning();
if (!IsLocationServiceRunning)
                    DependencyService.Get<IDeviceService>().StartLocationService();

ServiceRunningInterface:

public bool IsServiceRunning()
    {
            ActivityManager manager = (ActivityManager)Forms.Context.GetSystemService(Context.ActivityService);
            Type serviceClass = typeof(LocationService);
            foreach (var service in manager.GetRunningServices(int.MaxValue))
            {
                if (service.Service.ClassName.EndsWith(typeof(LocationService).Name))
                {
                    return true;
                }
            }
        }
    return false;
}

Каждый раз, когда я получу значение Is LocationRunning как true (что не так), и служба не запустится.

...