Xamarin.android xamarin.forms android服务在重新启动后运行两次
我有这段代码来创建一个android服务Xamarin.android xamarin.forms android服务在重新启动后运行两次,xamarin.android,xamarin.forms,Xamarin.android,Xamarin.forms,我有这段代码来创建一个android服务 [Service] public abstract class LongRunningTaskService : Service { public override IBinder OnBind(Intent intent) { return null; } public override StartCommandResult OnStartCommand(Intent intent, StartComm
[Service]
public abstract class LongRunningTaskService : Service
{
public override IBinder OnBind(Intent intent)
{
return null;
}
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
Logs.Info("service started: " + this.GetType().ToString());
try
{
Tasks.RunTask(() =>
{
try
{
Task.run(() => SomeTaskFunction);
StopSelf();
Logs.Info("service ended successfully from main task");
}
catch (Android.OS.OperationCanceledException e)
{
Logs.Warning("Error in Tasks.RunTaskWithoutWaitForResult", e);
}
});
return StartCommandResult.NotSticky;
}
catch (Exception e)
{
Logs.Warning("error in OnStartCommand", e);
return StartCommandResult.NotSticky;
}
}
public override void OnDestroy()
{
try
{
Logs.Info("service destroyed: " + this.GetType().ToString());
base.OnDestroy();
}
catch (Exception e)
{
Logs.Warning("Error in service destroyed: " + this.GetType().ToString(), e);
}
}
}
当我第一次创建服务时,它工作正常,但是当我从服务外部销毁它并用相同的函数重新创建它以运行时,有两个任务同时运行
我做错了什么?你所说的“有两个任务同时运行”是什么意思?你的服务同时启动了两次?您可以尝试在您的服务中设置bool标志,并确保它只运行一次。@Grace Feng-MSFT我的意思是,我启动了一个服务,终止了它,又重新启动了它,我看到了该服务的两个实例,这意味着停止服务不起作用