我想更新一些数据到我的应用程序。考虑应用程序处于后台状态,它既不是VoIP或音乐,也不是GPS。是否可以更新/发送数据到后台的应用程序?更新我的应用程序,当它在后台
注意:我不想通知用户,以便应用程序变为活动状态。
任何人都可以帮助我?
我想更新一些数据到我的应用程序。考虑应用程序处于后台状态,它既不是VoIP或音乐,也不是GPS。是否可以更新/发送数据到后台的应用程序?更新我的应用程序,当它在后台
注意:我不想通知用户,以便应用程序变为活动状态。
任何人都可以帮助我?
答案是肯定的,不是。
Apple确实允许您的应用程序在后台完成漫长的过程。但是,如果您不属于Voip,音乐或GPS类别,则无法在后台运行。
例如,如果您想要将某些数据发送到服务器,这可能需要一些时间,那么您可以将该进程标记为返回执行直到完成(或已过10分钟)。
你会发现一些有关Executing a Finite-Length Task in the Background
没有办法运行定时器或研究背景一样,任何东西,你只能完成你开始应用在背景执行前的任务。
@ rckoenes.Thanks您的答复。我已经通过了多任务和后台执行苹果文档。我想用其他方式来做。我想从服务器发送通知/数据到应用程序(在后台运行)。我知道,通过发送推送通知,我们可以使该应用程序处于活动状态,我不想让应用程序进入前台。该应用应该保持在后台并更新数据。那可能吗 ?? – Cyril 2012-02-16 11:39:07
不,这是不可能的。发送推送通知也不会将应用程序推到前台,只有在用户打开推送通知后,您才会到达前台。 – rckoenes 2012-02-16 12:13:20
对不起,你误解了我。我知道发送只有推送通知不会使应用程序成为前景,除非用户响应通知。我试图从服务器更新数据,当应用程序在后台。 – Cyril 2012-02-16 12:37:18
显示的警报是内置功能。你无法为此做任何事情。如果从服务器触发通知并且应用程序在后台,则会显示警报。 我在过去为这个东西做了很多搜索。
我在我的一项工作中完成了这项工作。这就是我所做的。
当应用程序中输入:- (void)applicationDidEnterBackground:(UIApplication *)application
我将数据发送到使用ASIHTTPRequest
财产服务器: [request setShouldContinueWhenAppEntersBackground:YES];
但之后结束了,我没有做了连接或数据操作。所以,只有连接在后台运行,而不是你的应用。连接完成后,您无法完成很多工作。
正如@rckoenes被提到的那样,你可能不会执行太长的任务。
如果您希望在应用程序在后台运行模式下运行时更新服务器数据,那么该应用程序应该在当时处于活动状态。只有在使用“音乐,voip或位置跟踪”时才能激活,否则应用程序将在后台模式下暂停。
避免这种情况的一种方法是开发您的应用程序并将其设置为使用,例如“位置跟踪”。这将使其能够满足活动后台进程的要求,并且您将能够更新服务器数据。
不幸的是,我不知道应用程序是否可以通过应用程序商店的批准与此设置。 但是,如果您对此解决方案感兴趣,可以查找示例here。
参见[链接] [1] [1]:http://stackoverflow.com/questions/4594348/iphone-connecting-to-server-in-background/ – Apurv 2012-02-16 11:21:19
我看了苹果文件,关于运行有限和长期运行的任务。但在这里,我想从服务器发送数据到应用程序,无论状态 – Cyril 2012-02-16 11:42:32