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

时间:2012-02-16 11:16:13

标签: iphone ios xcode background apple-push-notifications

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

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

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:4)

答案是肯定的,不是。

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

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

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

的内容

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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

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

答案 3 :(得分:-1)

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

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

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