在我的应用程序处于后台时更新它

我想将一些数据更新到我的应用程序。 考虑应用程序处于后台状态,它既不是Voip,也不是音乐或GPS。 是否可以更新/发送数据到后台的应用程序?

注意:我不想通知用户,以便应用程序变为活动状态。

谁能帮我 ??

答案是肯定的,不是。

Apple确实允许您在后台完成漫长的过程。 但是,如果你不属于Voip,音乐或GPS类别,那么你就无法在后台运行。

例如,如果您想将某些数据发送到服务器(这可能需要一些时间),那么您可以将该进程标记为已执行,直到完成(或已经过去10分钟)。

您将Executing a Finite-Length Task in the Background找到一些关于Executing a Finite-Length Task in the Background

无法在背景中运行计时器或任何类似的东西,您只能完成在应用程序背景之前启动的任务。

显示的警报是内置function。 你不能为此做任何事情。 如果从服务器触发通知并且应用程序在后台,则将显示警报。 我过去为这些东西做了很多搜索。

我在我的一项工作中完成了这项工作。 这就是我所做的。

当应用程序输入: - (void)applicationDidEnterBackground:(UIApplication *)application

我使用带有属性的ASIHTTPRequest将数据发送到服务器: [request setShouldContinueWhenAppEntersBackground:YES];

但完成后,我没有再做连接或数据操作。 因此,只有连接在后台运行而不是您的应用程序。 连接完成后你做不了多少。

提到@rckoenes时,您可能不会执行任务太长时间。

如果您希望在应用程序以后台模式运行时更新服务器数据,则应用程序应在此时处于活动状态。 它只能在使用“音乐,音乐或位置跟踪”时才能激活,否则应用程序将在后台模式下暂停。

避免这种情况的一种方法是开发您的应用程序,并将其设置为使用,例如“位置跟踪”。 这将使其满足活动后台进程的要求,您将能够更新服务器数据。

不幸的是,我不知道该应用是否可以通过此设置通过app store批准。 但是,如果您对此解决方案感兴趣,可以在此处找到示例。