我有一个计时器,它在屏幕锁定时在特定时间播放 AVAudio(锁定时应用程序在前台,plist 设置“应用程序不在后台运行”设置为是)。
当我在 iPhone 连接到 Xcode 的情况下运行我的代码时,它会按预期工作,即使 iPhone 已锁定数小时也能在锁定时播放音频。
现在,如果我断开我的 iPhone 并通过点击图标打开应用程序,如果设置超过一分钟,音频将不会播放。
是否存在导致此问题的差异?如果我将我的应用程序发布到 AppStore,我的用户会得到哪种行为?
最佳答案
“应用程序不在后台运行”标志是一个非常古老的标志,这意味着您的应用程序不支持多任务处理,并且应该在用户按下主页按钮时终止。我没有理由想在新开发的应用程序上设置该标志。除非您确切了解它的用途并且确信将其设置为是 是正确的做法,否则不要那样做。
(该标志是在 iOS 4 发布时添加的,以允许无法处理多任务的应用程序请求 iOS 3 中旧的终止主页按钮行为。鉴于我们现在有 6 个主要的 iOS 版本从 iOS 4 开始,它似乎已经过时了。)
所以删除那个标志。它可能对您的问题没有任何影响,但在任何情况下都将其删除或设置为 no。
如果您想在手机锁定时运行计时器并在指定时间播放声音,那么您可能需要将您的应用设置为背景声音播放器,并在收到一条消息时要求更多的背景时间将进入后台。
也就是说,Apple 很可能会拒绝您的应用。从后台运行计时器意味着手机上的处理器必须始终全速运行,这将显着缩短电池生命周期。
Apple 只允许非常小的一部分应用程序在后台运行,然后仅在特定情况下运行(例如用户正在积极听音乐时播放背景声音的应用程序,或主动跟踪用户的导航应用程序)位置并在需要转弯时通知他们。)
关于iOS/Xcode : is there a difference between running the App on an iPhone while connected to Xcode compared to opening the installed App afterwards?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41602828/