2014-09-23 176 views
1

我创建了一个应该在后台继续工作的应用程序。这似乎在一段时间内工作正常,但如果我长时间不使用手机,我发现它已停止工作,打开后又重新启动。让Android应用程序在后台运行,防止它停止/死亡

我所有的搜索都会让我知道如何让我的应用程序在后台运行,这样做很好(我基本上只是从Xamarin教程中拉出整个部分),但由于某种原因,它只是决定停止一次。

有什么办法来强制/确保应用程序将继续在后台运行?

+0

Google“前台服务”。 – 323go 2014-09-23 05:19:00

+0

这是Xamarin中的常见问题;我与之交互的一些公司遇到了类似的问题。你如何执行你的后台任务?如果它不在服务中,Android很可能会终止您的活动(即使它有一个后台.NET线程),然后用它取出Mono运行时。 – matthewrdev 2014-09-23 06:06:12

+0

此外,这是发生在版本或调试版本?调试版本以静默方式将Mono.Android.DebugRuntime安装到您的设备上,并将其作为服务激活,而发布版本则不会。 – matthewrdev 2014-09-23 06:21:32

回答

0

用户服务和执行所需的任务,即使应用程序从后台关闭,服务仍在后台运行。

1

如果你希望你的应用程序保持执行计算在后台,你应该选择一个Service (documentation)。尽管应用程序已关闭,您仍然可以选择构建仍在后台运行的服务。

[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; 
} 
} 

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

相关问题