我希望我的应用在我的手机处于锁定状态时定期执行一项功能,以便在需要时显示通知。
我知道我应该使用 UIApplication.shared.setMinimumBackgroundFetchInterval
作为时间间隔,所以我在 AppDelegate
的didFinishLaunchingWithOptions
函数中设置了它。 后台模式
也在我的info.plist
中设置。
我将我的 refreshData
函数放在 AppDelegate
的 performFetchWithCompletionHandler
中,当我使用 Simulate Background Fetch
调试时通过我手机上加载的应用程序进行控制,一切正常,但当我将手机放在一边时,什么也不会发生。
我猜 performFetchWithCompletionHandler
从来没有在我设置的时间间隔内被自己调用。我如何确定它按计划每 60 秒运行一次?
最佳答案
你不能。 iOS 决定何时以及多久在后台调用您的应用程序,而不是您。您可以简单地要求时间并希望最好。如果用户经常使用你的应用程序,那么操作系统会给你更多的后台时间。
如果您想要更多,您可以从外部服务器向设备发送 APNS,这将唤醒应用程序并给您一些处理时间。
This article详细描述您的选择。
关于ios - 让应用程序在后台执行一个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48065597/