让应用在后台执行功能

时间:2018-01-02 17:53:59

标签: ios swift background notifications

我希望自己的应用能够在手机被锁定的情况下定期执行某项功能,以便在需要时显示通知。

我知道我应该使用UIApplication.shared.setMinimumBackgroundFetchInterval作为时间间隔,因此我在AppDelegate的{​​{1}}函数中设置了它。 didFinishLaunchingWithOptions也设置在Background Mode

我将info.plist函数放在refreshData的{​​{1}}中,当我使用AppDelegate调试控件和我手机上加载的应用程序时,一切都运行得很好,但什么都没有当我把电话放在一边时,就会发生这种情况。

我猜performFetchWithCompletionHandler在我设定的时间间隔内从不被调用。我怎样才能确定它按计划每60秒运行一次?

1 个答案:

答案 0 :(得分:1)

你做不到。 iOS决定在后台调用您的应用的时间和频率,而不是您。你可以简单地追求时间并希望最好。如果用户经常使用您的应用程序,那么操作系统将为您提供更多的后台时间。

如果您需要更多,可以将APNS从外部服务器发送到设备,这将唤醒应用程序并为您提供一些处理时间。

This article详细介绍了您的选项。