安排任务在iOS应用处于后台状态时在特定时间运行

时间:2019-05-23 12:20:22

标签: ios

问题:

即使应用程序处于后台状态,我也想在特定的时钟时间运行特定的代码。

尝试的方法:

  1. 我尝试使用NSTimer,但是当应用程序进入后台状态时,NSTimer会暂停。
  2. 我不使用“背景提取”方法,因为要执行代码需要很长时间。

我看到了一个第三方iOS闹钟应用,该应用会在闹钟响起时开始播放音乐。根据我的研究,您无法在iOS(如Android)中安排任务。我想知道实现此类功能的解决方法。

对于该主题的任何建议和想法,我将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

唯一方式-静默远程通知

这将在后台唤醒您的应用,并且您可以通过application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)方法捕获通知。

像这样...

if launchOptions != nil,
        let userInfo = launchOptions?[UIApplication.LaunchOptionsKey.remoteNotification] as? [AnyHashable : Any] {
        // put your method here..
    }

有关静默通知的更多信息-Silent Remote Notification

答案 1 :(得分:1)

您可以使用静默推送通知来执行此操作,但是仍然不能确保用户会收到推送通知。 另一个选项是计划本地通知,但是如果用户未单击它或未打开应用程序,则无法从本地通知执行代码。 无法保证代码将在准确的时间内执行。 您的问题听起来像这样one