2013-07-22 61 views
0

我的应用程序在后台运行(获取位置更新),我需要每10秒将它推送到服务器。在后台运行应用程序?

我已经安排了一个计时器,调用一个函数,在该函数中捕获当前位置更新并将其推送到服务器。如果应用程序在前台存在,这会顺利运行。当应用程序移动到后台时,此功能运行15分钟,之后我根本看不到所调用的方法。

我知道如果一个应用程序被放入后台,它随时会进入挂起状态。另外,如果在前台运行的另一个应用程序需要内存,那么iOS可能会在后台终止一些应用程序。但在我的情况下,没有应用程序在前台运行,因为我锁定了我的设备。

我也对expirationHandler有一个想法。想知道如果我的应用程序进入暂停状态,Apple可以接受,我是否可以在后台继续调用该功能。

欢迎任何建议。

+3

这个确切的问题已被问了很多次。你不能随便每隔X秒就随意调用你的代码。 Apple不允许这样做,因为这会浪费CPU时间和电池。这是故事的结尾。您*可以*做的是注册重要的位置更新,并在用户移动到新的“区域”时通知您的应用程序。 – borrrden

回答

0

您可以在您的plist中添加App registers for location updates根据Required background modes

+1

然后准备好看你的应用程序被拒绝,因为没有正确使用背景模式。 – borrrden

+0

如果应用程序具有获取位置更新的相关功能并且用户知道它(相关单词由Apple定义),则它将生存 – Horst

+0

然后解释“Wahhh我的应用程序由于未正确使用背景模式而被拒绝“关于堆栈溢出的问题。那么,你必须提出一个非常明确的例子来在重大改变模式中使用它。 – borrrden

0

同样的情况也出现在我的应用程序中,我在plist文件中设置了uibackground模式,并使用appdeligate和苹果认可的应用程序的服务:) 希望它可以帮助你。