我创建了一个应用程序,它应该在后台继续工作。这在一段时间内似乎很好用,但如果我长时间不使用手机,我会发现它已经停止工作,打开后就会重新启动。
我所有的搜索都会让我找到关于如何让我的应用程序在后台运行的帖子,这很好(我基本上只是从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;
}
}
如果你的意思是"继续在后台工作",你的应用程序应该从正确的片段/活动重新启动,你应该检查如何保存你的状态。(文档)
用户服务并执行您想要的任务,即使应用程序从后台关闭,服务也会在后台运行。
请参阅以下内容以供参考:
http://developer.android.com/guide/components/services.html
https://developer.android.com/training/run-background-service/create-service.html
但对于启动,您可以按照示例操作:http://www.tutorialspoint.com/android/android_services.htm