iOS:让应用程序在后台运行

问题描述:

如何让我的应用程序在后台运行? 我需要越狱我的iPhone才能做到这一点吗?我只需要这个应用程序来检查互联网上的每一个设定的时间间隔,并在需要时通知我自己使用。iOS:让应用程序在后台运行

+0

嗨丹尼斯希望你有你的答案。如果是的话,那么你能否请你将自己的答案标记为true,并投票选举...... – Mrunal

是的,不需要越狱。从Apple查看本文档的“实现长时间运行的后台任务”部分。

从苹果的doc: 声明您的应用支持后台任务

支持某些类型的后台执行的,必须事先通过使用它们的应用程序中声明。应用程序使用Info.plist文件声明对服务的支持。将UIBackgroundModes键添加到Info.plist文件中,并将其值设置为包含以下一个或多个字符串的数组:(请参阅上述链接中的Apple文档。)

+4

此方法是否可以24 x 7工作 - 永久? – takrishna

+1

@takrishna,如果你正在编写这个应用程序供你自己使用,然后设置UIBackgroundModes值“voip”(IP语音)。这是最简单的应用程序类型,永久保存在后台。 (但不要将它提交给应用程序商店,除非它真的是VOIP应用程序。) – ToolmakerSteve

+0

对于应用程序商店应用程序,如果您没有服务器来定期向您的手机发送“远程通知”,则您唯一的其他选项是“后台抓取”。 http://*.com/a/37311611/199364 – ToolmakerSteve

您已经可以做到这一点的方法applicationDidEnterBackground

+0

我认为应用会在一段时间后自动终止,不是吗?如果我错了,请原谅我的无知。我对iOS编程非常陌生。 – Dennis

+0

除非iOS需要用于其他应用程序的内存,否则不会,并且只要您在后台执行某些操作。 – user1320885

+5

编号应用程序无法在后台运行超过10分钟,除了少数特定情况(VOIP,播放音频等。) – Greg

使用本地通知来做到这一点。但是这不会每次都检查。你将不得不设置一个时间来检查你的特定事件,你可以通过缩短你的时间来缩短这个时间。了解更多关于本地通知,知道如何在实现这一目标:

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html

+0

不,如果应用程序在后台,本地通知所要做的就是向用户显示通知。除非用户单击通知以将应用程序置于前景,否则无法进行任何实际工作。 – ToolmakerSteve

我知道这不是您问题的答案,但我认为这是一个解决方案。

这假设你想要定期检查某些东西或从互联网上获取数据吗?

创建一个服务,无论您想知道什么,都会检查互联网的每一个设定的时间间隔,并创建一个推送通知来提醒您,如果服务器关闭,或者您尝试监视的任何内容已更改州。只是一个想法。

是的,你可以做这样的事情。为此,您需要在info.plist中设置条目来告诉操作系统我的应用程序将在后台运行。当我想要将特定时间戳后的用户位置传递给服务器时,我已经完成了此操作。为此,我已将“所需的背景模式”设置为“应用程序注册以进行位置更新”。

您可以编写一个类型为UIBackgroundTaskIdentifier的处理程序。