在我的应用程序处于后台时更新它
我想将一些数据更新到我的应用程序。 考虑应用程序处于后台状态,它既不是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批准。 但是,如果您对此解决方案感兴趣,可以在此处找到示例。