【问题标题】:How to schedule a task at accurate time on Jailbroken iPhone in deep sleep如何在深度睡眠中的越狱 iPhone 上在准确的时间安排任务
【发布时间】:2014-05-29 09:37:13
【问题描述】:

我正在开发一个后台(守护程序)应用程序,它将在准确的时间安排任务。例如,下午 3 点做某事,或者可以在 3 小时后做某事。我已经尝试过 NSTimer 和调度 NSThread,但由于 iPhone 处于深度睡眠状态,它不会在我安排的时间执行任务。

请注意,这是一个在越狱设备上的应用程序并作为守护程序运行,因此它没有 UIApplication 实例。

【问题讨论】:

    标签: ios objective-c background daemon jailbreak


    【解决方案1】:

    我的守护进程也有同样的问题。我找不到任何安排设备唤醒的工作方法。相反,我通过无声地无限播放音频文件来防止它陷入深度睡眠。这样您就不需要IOKit 来取消睡眠并且您的设备将保持清醒状态。我现在找不到代码,但它非常简单 - 几次调用 AVAudioPlayer。您还需要设置音频会话以进行音频播放和混音。这些都是公开且非常知名的 API,因此实现它应该不会有任何问题。

    它有问题。例如,播放音频文件会将音频重新路由到设备接收器。默认情况下,音频是通过扬声器播放的,因此您需要注意这一点。您还需要检测屏幕何时打开/关闭,因为屏幕打开时设备不会休眠。当屏幕关闭时,您开始播放静音。当它打开时,你停止它。这也将解决与尝试播放音频的其他应用程序的混合问题。

    很遗憾,我现在没有任何代码可以向您展示一些示例。如果需要,我可以稍后添加代码。

    【讨论】:

    • 非常感谢您的帮助。这种方法似乎可以防止设备进入睡眠状态。但是,我想找出允许设备进入睡眠模式但仍允许我的应用程序在准确时间执行任务的方法。
    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2010-10-23
    相关资源
    最近更新 更多