Служба заданий Android не извлекает метод из общего кода в фоновом режиме

#android #xamarin.forms #xamarin.android

#Android #xamarin.forms #xamarin.android

Вопрос:

Я создал службу для проверки уведомлений со своего собственного сервера.

Он отлично работает, когда мое приложение запущено, но он работает не так хорошо, когда мое приложение недавно удалено. Я создал toast, чтобы проверить, запущена ли моя служба stilling или нет, и toast сработал после того, как я завершил работу приложения, но метод, который проверяет сервер, не работает в фоновом режиме.

Я использую xamarin forms и службу Android с установленным в моем эмуляторе android oreo, это мой код

 public class MyService : JobService
{
    private void DoWork()
    {
        try
        {
            Intent i =new Intent(this.ApplicationContext,typeof(MyReciver));
            i.SetAction("ezz");
            SendBroadcast(i);
        }
        catch
        {

        }
        finally
        {
            StopSelf();
        }

    }

    public override bool OnStartJob(JobParameters jobparams)
    {
        new Task(() =>
        {
        while (true)
            {
                DoWork();
                Thread.Sleep(5000);
                JobFinished(jobparams, true);
            }
        }).Start();
        return true;

    }

    public override bool OnStopJob(JobParameters jobparams)
    {
        return true;

    }
}
  

И это мой приемник:

 if (intent.Action == "ezz")
        {
            try
            {
                txtmod v = new txtmod();//to get the last id doesn't work in background
                string cc = v.readtxt();
                string bb = "Last id "   cc;
                Toast.MakeText(context, bb, ToastLength.Short).Show();//run in foreground and stil running in back ground
                PostReq post = new PostReq(1);//doesn't work in background
            }
            catch { }
        }
  

Комментарии:

1. StopSelf() метод завершает работу самой службы

2. да, и я комментирую это, но результат тот же