Xamarin.android xamarin.forms 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

我有这段代码来创建一个android服务

[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我的意思是,我启动了一个服务,终止了它,又重新启动了它,我看到了该服务的两个实例,这意味着停止服务不起作用