IOS后台工作



我有一个iPhone应用程序,比如iPhone的facebook。我的应用程序必须连接我的服务器,并定期每两小时读取一次所有消息。我有一个线程来读取所有消息,但是当应用程序终止时,线程无法工作。线程是否可以从主委托不依赖地运行,或者如何找到此问题的解决方案?

你不能让你的应用在后台做一些事情。有一个 API 可以完成上传照片等任务,但即使这样也会在大约 10 分钟后被杀死。

但是Apple推送通知服务似乎是解决您问题的最合适的解决方案。您的服务器会通知设备有新情况发生,并在用户打开应用程序时获取实际消息。

编辑:从iOS 7开始,Apple实施了一项功能,您可以在其中安排正在运行的任务以在后台获取数据。不保证这些任务在任何特定时间运行。请参阅 iOS 7 的发行说明和以下链接的方法:

通过联系服务器定期更新其内容的应用可以 向系统注册并定期启动以检索该 背景中的内容。要注册,请包括 UIBackgroundModes(用户界面) 键,以提取应用的 Info.plist 文件中的值。然后,当 您的应用启动后,调用 setMinimumBackgroundFetchInterval: 方法来确定它接收更新消息的频率。最后 您还必须实现 application:performFetchWithCompletionHandler: 应用程序中的方法 委托。

没有解决方案。

Apple 不允许应用程序在后台运行,

除非它们属于特定类型,例如位置、音频、VoIP 或 newstand(如果您的应用程序使用 shouldBeginBackgroundTaskWithExfilationHandler,则在激活后可以继续运行大约 10 分钟)。

没有解决方法,许多其他人都想知道如何做与自己相同的事情,但没有合法的方法。你的应用无法计划任何类型的定期呼叫总部活动。

应用进入挂起或终止状态后运行的唯一方法是让用户显式启动它,或者响应本地通知或远程推送通知。

最新更新