Служба не работает на некоторых устройствах и не может остановить запуск службы - PullRequest
0 голосов
/ 08 мая 2019

В моем приложении реализована служба определения местоположения, которая запускается каждые x минут.Служба запускается, когда пользователь входит в систему и всякий раз, когда приложение убивается и открывается, я проверяю, запущена ли служба в OnStart ().

В App.xaml.cs, Код для остановки службы:

DependencyService.Get<IDeviceService>().StopLocationService();

Код для проверки работоспособности службы:

bool IsLocationServiceRunning = DependencyService.Get<IServiceRunning>().IsServiceRunning();

В DeviceService.cs:

public void StopLocationService()
    {
        try
        {
            Android.App.Application.Context.StopService(new Intent(Android.App.Application.Context, typeof(LocationService)));
        }
        catch (Exception ex)
        {
            Utility.LogMessage("Error in StopLocationService(M): " + ex.Message, LogMessageType.error);
        }
    }

ServiceRunning.cs:

public bool IsServiceRunning()
    {
        try
        {
            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;
                }
            }
        }
        catch(Exception ex)
        {
            Utility.LogMessage("Error in IsServiceRunning(M): ", LogMessageType.error);
            Utility.LogError(ex, LogMessageType.error);
        }
        return false;
    }

Во-первых, я прекращаю службу, и когда я проверяю, работает ли IsLocationService, он все равно говорит true.

Есть идеи, как остановить службу?Мне нужно остановить службу и начать заново в некоторых сценариях.

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...