如何声明必须在后台运行的 iPhone 应用程序?

Posted

技术标签:

【中文标题】如何声明必须在后台运行的 iPhone 应用程序?【英文标题】:How to declare an iPhone app which has to run in the background? 【发布时间】:2011-03-02 08:59:20 【问题描述】:

嘿, 我写了一个需要在后台运行的 iPhone 应用程序。我确实根据在后台运行在我的信息 plist 中设置了属性。问题是应用商店列出了 iPhone 3G 以及“兼容设备”。

是否可以设置我的信息列表以摆脱应用商店中的 iPhone 3G?

我通过将“opengles-2”添加到 UIRequiredDeviceCapabilities 找到了一种解决方案 - 但这似乎不是最好的方法?!

谢谢!

【问题讨论】:

为什么您不能制作一个适用于所有设备但仅在可用时才使用其后台功能的应用程序的原因是什么?像其他人一样。 我的应用程序的功能依赖于后台服务。如果应用程序不能在后台运行,它就没有任何意义。问题是:在用户看来,该应用程序“有效”,但实际上并非如此。这导致了相当糟糕的评论。 【参考方案1】:

您不能直接区分实际的设备类型(3G 与 iPhone 4 等),但正如您在 UIRequiredDeviceCapabilities 中所指出的那样,可能暗示某些设备。 不过,还有更直接的路线,请继续阅读...

如果您需要兼容多任务的设备,则可以选择任何运行 ios4 或更高版本的设备。 XCode 项目的构建设置中有一个设置允许您设置应用程序运行所需的最低 iOS — “iOS 部署目标”。将此设置为“iOS4”,您的应用将仅适用于支持多任务处理的 iDevices(包括 iOS4 或更高版本的 iPad,顺便说一句)。 -- 不,还不够,请参阅下面的 cmets 和 Jules 的链接。 p>

【讨论】:

顺便说一句,我认为您知道 iOS 的“多任务处理”在允许您进行多任务处理方面非常有限?像 VOIP 和流式音频这样的东西是可以的,但一般的多任务/背景是不可能的。 但仅检查 iOS4 是不够的,因为 iPhone 3G 也运行 iOS 4 - 只是没有后台多任务处理功能。 刚刚找到this answer,但是如果有armv8架构会发生什么?

以上是关于如何声明必须在后台运行的 iPhone 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的应用在 iPhone 上后台运行?

如何在iOS中以编程方式重新启动iPhone应用程序

iphone - NSTimers 在后台

如何每小时在后台运行约 30 秒的进程(iphone 应用程序)

如何在iphone的后台获取位置[关闭]

iPhone - 如何处理内存不足的情况