首页 > 解决方案 > StartService 方法已执行,但 Service 事件未触发

问题描述

我有一个活动,我在 OnCreate 方法中启动服务。StartService方法执行没有任何错误,但服务类中的任何事件都没有被触发!正如您在我的代码中看到的那样,我测试了显式和隐式模式来启动服务,但两种结果都是一样的!我的代码:

活动:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    try
    {
        serviceToStart = new Intent(ApplicationContext, typeof(TrackService));
        StartService(serviceToStart);
    }
    catch(Exception e)
    {
        var ee = e;
    }
}

跟踪服务:

[Service(IsolatedProcess = true, enabled = true)]
public class TrackService : Service
{
    FusedLocationProviderClient fusedLocationProviderClient;

    public override void OnCreate()
    {
        base.OnCreate(); //Break point set here
    }

    public override StartCommandResult OnStartCommand(Android.Content.Intent
                 intent, StartCommandFlags flags, int startId)
    {
        fusedLocationProviderClient = 
            LocationServices
            .GetFusedLocationProviderClient(this); //Break point set here
        return StartCommandResult.Sticky;
    }

    public override IBinder OnBind(Intent intent)
    {
        return null;
    }
}

显现:

编辑:清单手册已删除已删除

谁能告诉我有什么问题?

标签: androidxamarinservice

解决方案


最后!我找到了问题的根源!但是,我不知道它为什么会发生,我该如何解决它!

我总是在 logcat 中收到此错误:

没有找到 void mono.android.Runtime.register 的实现

在逐部分删除代码后,我发现问题是由IsolatedProcess属性引起的。只需删除它,代码就可以正常工作。

注意:如您所见,也不需要enabled为服务添加属性。

[Service]
public class TrackService : Service

推荐阅读