iOS背景模式

时间:2013-04-03 01:34:46

标签: ios background monitor mode

我有一个关于在后台运行应用的问题。 我知道怎么做,但Apple并不喜欢我这样做的方式。

为了让你进入同一个页面,我有一个安全应用程序,我需要它监视设备,即使它在后台。它有点像防盗报警器。 我正在使用背景音频模式,认为它会没问题,因为我会在触发时播放声音。毋庸置疑,Apple并不喜欢这样。 所以我加了一个ping!它在活动时ping,因此在后台播放背景音频。 再一次,他们也不喜欢这样。

我的应用程序也监控加速度计(但并非总是如此,仅在用户选择时)。

我的问题是,Skype等应用程序和其他类似应用程序如何能够将状态栏变为红色并保持在后台? (甚至一些警报应用程序也会这样做,不播放任何音频或任何东西)。

此外,我无法使用通知系统,因为如果我正在监控电池电量,它的更新速度不够快。对于我的应用程序,我需要立即回复。

在我发布问题之前,我也不知疲倦地搜索了这个答案(我找到的答案,对我不起作用..):(

我非常感谢您对此有任何见解,提前致谢!

(如果您需要更多信息,请询问!)

3 个答案:

答案 0 :(得分:5)

从我从他们的文档中可以看出,似乎唯一可以维持持久背景连接的方法是使用他们的七个background mode keys中的一个,我可以看到你自从尝试过你注册了背景音频。我也知道一些使用此功能的警报应用程序(例如睡眠周期),我的假设是他们也在使用背景音频模式,考虑到其他六种模式并不是他们需要的远程接近。

我认为Apple的推理可能是允许这些应用程序这样做,因为他们的应用程序旨在当用户不主动使用手机时(即当他们正在睡觉时)使用,并且需要音频唤醒用户,而如果您正在运行希望始终处于活动状态的安全应用程序,则可能会干扰用户可能使用的其他功能,如Skype。当用户使用红色条时,红色条也会一直存在于设备的顶部,这可能会让他们误认为仍在播放的东西,因为通常当出现红色条时,它意味着用户仍在使用它一些东西。同样,我认为唤醒警报应用程序以及其他不使用持久性音频的应用程序能够摆脱这种情况,因为它们是专为手机处于非活动状态时使用而设计的,因此在应用程序时具有持久性红条不可见是不是一个问题。

在其他一些情况下,比如Nike +(讨论here)和可能的计步器,他们似乎正在使用位置背景模式,因为它们通常也会跟踪你去哪里并需要知道距离。在我链接的讨论中,看起来其他人能够通过注册应用于他们的后台模式来获得加速度计更新。您是否尝试过注册位置移动?我可以看到的一个缺点是它可能会更快地耗尽电池寿命,但如果您不经常检查位置可能不会太糟糕?另一个原因是我不认为你可以在位置背景模式下直接播放音频,但你可以试着触发声音通知吗? :)如果适用于您的应用程序,那可能是一个很好的解决方法。

同样,我为什么这些应用程序能够做到这一点的原因只是基于我看到其他应用程序运行的方式,而Apple可能有不同的理由说明为什么它会接受它们,但那是我最好的思考为什么你的应用程序被拒绝使用这些模式而其他人能够做到这一点的方式。如果位置不是您正在寻找的内容,不幸的是,我不确定您的应用是什么样的,您可以在后台持续操作你期待的方式。

答案 1 :(得分:1)

每个应用程序都需要响应能力。用户希望打开时已准备好其内容的应用程序,因此开发人员应使用“后台模式”使其应用程序更加用户友好。

启用后台模式功能

  1. 转到Xcode并打开您的项目。
  2. 在您的应用目标中,导航至“功能”标签。
  3. 打开后台模式。

背景抓取

背景提取是一种新模式,可让您的应用始终显示最新信息,同时最大程度地减少对电池的影响。您可以使用此功能在固定的时间间隔内下载Feed。

开始使用:

1-在Xcode的功能屏幕中检查后台获取。

2-在AppDelegate的application(_:didFinishLaunchingWithOptions :)方法中,

参考:https://medium.com/@javedmultani16/background-modes-in-ios-3da25b9e6474

答案 2 :(得分:0)

只有在您主动使用保持应用程序唤醒的活动时才能使用后台模式:例如连续播放音频是对音频背景键的有效使用。他们会非常认真地看你是否真的需要你要求的访问权限,如果没有,他们会拒绝你(正如你已经发现的那样),因为后台服务比其他服务更耗尽电池。

来自the docs

  

这些密钥应该谨慎使用,并且只能由提供指定服务的应用程序使用。

简短的故事:我认为您对提议的实施方案不满意。

相关问题