我们可以在ios中编写后台服务,这些服务会在一段延迟(例如1分钟)后连续在后台运行。
我有一个应用程序在每分钟后获取数据我想为它编写后台服务。
独立于应用程序是否运行,虽然应用程序不在内存中,但服务应在1分钟后连续运行。
我在Android应用程序中编写了相同的服务,但我不知道它是否可能在ios中。
答案 0 :(得分:0)
不,你不能,iOS决定你的应用何时可以获取。 检查"Background Fetch mode" in this article.
答案 1 :(得分:0)
嗯,Actualy它取决于你想要执行的任务。要点是你不能永久地在后台执行任何任务。在您需要请求的时间间隔。
您可以在后台执行一些任务,如下载等。您需要使用dispatch_async
类似于- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
{
bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{
// Clean up any unfinished task business by marking where you
// stopped or ending the task outright.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task, preferably in chunks.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
有关详细信息,如有限任务,您可以在下面的链接中找到苹果的文档。
<强> max value 强>
您还可以从以下链接获得有关后台服务的更多帮助。
<强> BackgroundExecution 强>