Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保持Android应用程序在后台运行,防止其停止/死亡_C#_Android_Xamarin_Backgrounding - Fatal编程技术网

C# 保持Android应用程序在后台运行,防止其停止/死亡

C# 保持Android应用程序在后台运行,防止其停止/死亡,c#,android,xamarin,backgrounding,C#,Android,Xamarin,Backgrounding,我已经创建了一个应用程序,可以在后台继续工作。这似乎在一段时间内可以正常工作,但如果我长时间不使用手机,我会发现它已经停止工作,打开后又会重新启动 我所有的搜索都让我找到了如何让我的应用程序在后台运行的帖子,它做得很好(我基本上只是从Xamarin教程中提取了整个部分),但出于某种原因,它只是在一段时间后决定停止 是否有任何方法可以强制/确保应用程序将继续在后台运行?用户服务并执行您想要的任务。在这种情况下,即使应用程序从后台关闭,服务也会在后台运行。请参阅以下内容以供参考: 但对于启动,您

我已经创建了一个应用程序,可以在后台继续工作。这似乎在一段时间内可以正常工作,但如果我长时间不使用手机,我会发现它已经停止工作,打开后又会重新启动

我所有的搜索都让我找到了如何让我的应用程序在后台运行的帖子,它做得很好(我基本上只是从Xamarin教程中提取了整个部分),但出于某种原因,它只是在一段时间后决定停止


是否有任何方法可以强制/确保应用程序将继续在后台运行?

用户服务并执行您想要的任务。在这种情况下,即使应用程序从后台关闭,服务也会在后台运行。

请参阅以下内容以供参考:

但对于启动,您只需遵循以下示例:

如果你想让你的应用程序继续在后台执行计算,你应该选择。您可以选择构建仍将在后台运行的服务,尽管应用程序已关闭

[Service]
public class DemoService : Service
{
      public override StartCommandResult OnStartCommand (Android.Content.Intent intent, StartCommandFlags flags, int startId)
{
        var t = new Thread (() => {
                Log.Debug ("DemoService", "Doing work");
                Thread.Sleep (5000);
                Log.Debug ("DemoService", "Work complete");
                StopSelf ();
        }
        );
        t.Start ();
        return StartCommandResult.Sticky;
}
}

如果你的意思是“在后台继续工作”,那么你的应用程序应该从正确的片段/活动重新启动,你应该检查如何保存你的状态。()

Google“前台服务”。这是Xamarin的一个常见问题;我接触过的一些公司也遇到了类似的问题。你是如何执行你的背景任务的?如果它不在服务中,Android可能会杀死你的活动(即使它有一个后台.NET线程)并带走Mono运行时。此外,这是在发布版还是调试版中发生的?调试版本以静默方式将Mono.Android.DebugRuntime安装到您的设备上,并将其作为服务激活,而发布版本则不这样做。这些对于Xamarin应用程序并不十分正确。这个问题加上了Xamarin的标签。