#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. да, и я комментирую это, но результат тот же