我希望自己的应用能够在手机被锁定的情况下定期执行某项功能,以便在需要时显示通知。
我知道我应该使用UIApplication.shared.setMinimumBackgroundFetchInterval
作为时间间隔,因此我在AppDelegate
的{{1}}函数中设置了它。 didFinishLaunchingWithOptions
也设置在Background Mode
。
我将info.plist
函数放在refreshData
的{{1}}中,当我使用AppDelegate
调试控件和我手机上加载的应用程序时,一切都运行得很好,但什么都没有当我把电话放在一边时,就会发生这种情况。
我猜performFetchWithCompletionHandler
在我设定的时间间隔内从不被调用。我怎样才能确定它按计划每60秒运行一次?
答案 0 :(得分:1)
你做不到。 iOS决定在后台调用您的应用的时间和频率,而不是您。你可以简单地追求时间并希望最好。如果用户经常使用您的应用程序,那么操作系统将为您提供更多的后台时间。
如果您需要更多,可以将APNS从外部服务器发送到设备,这将唤醒应用程序并为您提供一些处理时间。
This article详细介绍了您的选项。