【问题标题】:iPhone Task CompletioniPhone 任务完成
【发布时间】:2010-08-02 13:38:12
【问题描述】:

几天前我开始尝试 iPhone 平台的开发,在阅读它的多任务处理功能时,我发现了“任务完成”,它非常有用。

我用谷歌搜索了一下,阅读了 developer.apple.com/iphone 上的文档,但仍然没有找到:有没有办法让这个任务完成运行一个循环(可能是一个无限循环),或者每 10 分钟运行一次的计时器?

我知道这就像“作弊”,他们可能有一些对策,但无论如何,尝试一下是件好事:)

【问题讨论】:

    标签: iphone objective-c multitasking


    【解决方案1】:

    任务完成?不可以。但是,您可以说您的应用程序是具有后台功能的音频应用程序,例如,使用 kAudioSessionProperty_OverrideCategoryMixWithOthers 属性设置音频会话,循环播放一些不播放声音的音频。这将让用户退出,启动 iPod 或其他类似设备,并在您的应用继续运行时让它正常播放。

    我已经在一个示例应用程序中对此进行了测试,并且可以正常工作。但是,它是可疑的,我不会推荐它。 (如果 Apple 发现它也可能会被拒绝。)

    【讨论】:

    • 您一次只能有一个后台音频应用程序,还是可以有多个?似乎如果用户打开 iPod 应用程序或 Pandora 之类的应用程序,您的应用程序将处于非活动状态。
    • 只要打开音频设备的应用程序使用我上面定义的属性,您就可以播放任意数量的音频源。然而,像 iPod 这样的应用程序却没有。如果其他人想要访问音频,他们将停止播放。但是,如果您使用上述属性启动应用程序,即使 iPod 已请求访问,该应用程序仍会继续播放,并且 iPod 不会在意,因为它已获得访问权限。该系统足够智能,可以让 iPod 播放,但也知道不会停止其他应用程序,因为它可以与其他应用程序很好地混合。
    • 我仍然无法尝试,这是一个相当理论化的问题,我不得不承认,但这似乎是强制保持应用程序在后台打开的好方法。很遗憾,这可能会很快耗尽电池电量,尤其是与其他应用程序或同一应用程序运行的不同处理任务结合使用时。
    • 哦,当然,这对您的电池使用时间来说可能不是个好兆头(当然,如果您使用基于位置的后台应用程序或 voip 应用程序,它不会像它那样消耗它)。 .. 但是,是的,绝对不适合电池。
    • PasteBot tried this background audio hack 苹果拒绝了它,说你必须要么播放某种音频,要么删除该功能。所以这是一个真实的例子,有人试图变得聪明并绕过限制,在技术上符合规则,但违反了法律精神。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多