让应用程序在后台执行一个功能

问题描述 投票:0回答:1

我希望我的应用程序在我的手机被锁定时定期执行一项功能,以便在需要时显示通知。

我知道我应该在时间间隔使用UIApplication.shared.setMinimumBackgroundFetchInterval,所以我在AppDelegate'sdidFinishLaunchingWithOptions函数中设置它。 Background Mode也在我的info.plist中。

我把refreshData函数放在AppDelegateperformFetchWithCompletionHandler中,当我使用Simulate Background Fetch调试控件和我手机上加载的应用程序时,一切都很漂亮,但当我把手机放在一边时,没有任何事情发生。

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

ios swift background notifications
1个回答
1
投票

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

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

This article详细描述了您的选择。

© www.soinside.com 2019 - 2024. All rights reserved.