如果我的应用关闭,无法让我的Android服务正常工作

时间:2018-02-09 20:59:57

标签: android service xamarin.forms android-service background-service

嗨,大家好我面对这个问题但测试没有成功,我一直在寻找信息,但目前找不到任何解决方案。我遵循服务指南,所有指南都说,但我仍然有问题 我的服务代码:

    [Service(Label="MyService")]
    public class MyService : Service{

        protected override StartCommandResult onStartCommand(Intent intent, StartCommandFlags flags, int startId){
            var t = new Task(() => {
                Looper.prepare();
                    do{
                        DoServiceWork();
                    while(running);
            });

            t.Start();

            return StartCommandResult.Sticky;
        }
    }

在我的主要活动中:

protected override void OnCreate(Bundle bundle){
    new Task(StartService).Start();
}

void StartService(){
    var intent = new Intent(Application.Context, typeof(MyService));
    Application.Context.StartService(intent);
}

当我的应用程序被杀时,我无法继续使用我的服务,我希望你们可以帮助我解决这个问题,提前感谢那些可以帮助我的人。

1 个答案:

答案 0 :(得分:0)

  

当我的应用程序被杀时,我的服务无法继续工作

请参阅this,在本文中,您可以找到:

  

请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。

“服务在主线程中运行”,这意味着如果您的app / main-process / main-thread被杀死,您的服务将被终止。如果您希望自己的服务运行,您的应用必须处于活动状态。无法始终运行自定义服务。

您可以使用IntentService进行重量级计算,同时,它会提高您应用的优先级,以便您的应用无法被杀死。