有没有办法将iOS后台运行时间延长一点超过30秒,或者在一分钟左右调用后台函数运行一次?

有没有办法将iOS后台运行时间延长一点超过30秒,或者在一分钟左右调用后台函数运行一次?,ios,swift,iphone,xcode,ipad,Ios,Swift,Iphone,Xcode,Ipad,我有一个在后台启动的应用程序,由于ios13使用beginBackgroundTask(expirationHandler)获得大约30秒的后台运行时间。我试图从一个外部服务获取数据,该服务大约需要40秒来计算其最终输出,因此我需要扩展后台获取,并在40-60秒后设置一个DispatchQueue,或者在60秒后直接在后台调用该函数 我已经查找了后台获取,但我认为这并不足够,因为它会永远获取数据(而且时间间隔很长),而我只需要在后台计算完成1分钟后才需要它 我还看了类似的帖子,其中提到iOS可以

我有一个在后台启动的应用程序,由于ios13使用beginBackgroundTask(expirationHandler)获得大约30秒的后台运行时间。我试图从一个外部服务获取数据,该服务大约需要40秒来计算其最终输出,因此我需要扩展后台获取,并在40-60秒后设置一个DispatchQueue,或者在60秒后直接在后台调用该函数

我已经查找了后台获取,但我认为这并不足够,因为它会永远获取数据(而且时间间隔很长),而我只需要在后台计算完成1分钟后才需要它

我还看了类似的帖子,其中提到iOS可以像iOS 13和iOS 7之前那样在后台工作3到10分钟

对于上下文,应用程序在后台接收一个BLE数据包,使应用程序执行后台任务约30秒,并将接收到的数据发送到进行某些计算的服务器,更新一个GET http方法,该方法给出应用程序的最终结果

澄清:我没有访问权限或可以修改服务器


如果没有办法,是否有类似的方法来执行相同的操作?

您可以让服务器在任务完成时发送推送通知。你不能延长后台执行时间。我忘了添加我不能更改服务器的功能,它对我来说是外部的。我目前正在使用localNotification作为后台时间查找,您下次来到前台时和/或下次由Datable在后台启动时应获取数据。它目前正在执行此操作。我是否可以使用本地通知和didReceiveLocalNotification in app delegate作为后台计时器?否,因为在传递本地通知时,您的应用不会执行。任务完成后,您可以让服务器发送推送通知。你不能延长后台执行时间。我忘了添加我不能更改服务器的功能,它对我来说是外部的。我目前正在使用localNotification作为后台时间查找,您下次来到前台时和/或下次由Datable在后台启动时应获取数据。它目前正在执行此操作。我可以使用本地通知和didReceiveLocalNotification in app delegate作为后台计时器吗?不可以,因为在传递本地通知时,应用程序不会执行。