在ios中编写后台服务

时间:2016-02-09 06:47:26

标签: ios iphone

我们可以在ios中编写后台服务,这些服务会在一段延迟(例如1分钟)后连续在后台运行。

我有一个应用程序在每分钟后获取数据我想为它编写后台服务。

独立于应用程序是否运行,虽然应用程序不在内存中,但服务应在1分钟后连续运行。

我在Android应用程序中编写了相同的服务,但我不知道它是否可能在ios中。

2 个答案:

答案 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