我创建了一个应该在后台继续工作的应用程序。这似乎在一段时间内可以正常工作,但是如果我长时间不使用手机,我会发现它已经停止工作,并且在打开它时会再次启动。
我所有的搜索都让我找到了关于如何让我的应用程序在后台运行的帖子,这很好(我基本上只是从 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;
}
}
如果您的意思是“继续在后台工作”,您的应用程序应该从正确的片段/活动重新启动,您应该检查如何保存您的状态。(文档)
用户服务并执行您想要的任务,即使应用程序从后台关闭,服务也会在后台运行。
请参阅以下内容以供参考:
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