首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ios13:不再调用performFetchWithCompletionHandler

Ios13中不再调用performFetchWithCompletionHandler是指在iOS 13及以上版本中,不再使用performFetchWithCompletionHandler方法来执行后台任务。

performFetchWithCompletionHandler是UIApplicationDelegate协议中的一个方法,用于在应用程序处于后台状态时执行后台任务。它允许应用程序在后台获取最新的数据或执行其他必要的操作。

然而,在iOS 13中,苹果引入了新的后台任务处理机制,即使用BGTaskScheduler和BGAppRefreshTask来执行后台任务。这种新的机制提供了更灵活和可靠的后台任务管理方式。

相比于performFetchWithCompletionHandler方法,BGTaskScheduler和BGAppRefreshTask具有以下优势:

  1. 灵活性:BGTaskScheduler允许开发者定义和注册自定义的后台任务类型,可以根据应用程序的需求来执行不同类型的后台任务。
  2. 可靠性:BGTaskScheduler提供了更可靠的后台任务执行机制,确保任务的执行不会受到系统资源限制或其他因素的影响。
  3. 节能性:BGTaskScheduler可以根据设备的电池状态和网络连接状态来智能调度后台任务的执行,以节省设备的电池寿命。

在iOS 13中,如果需要执行后台任务,可以按照以下步骤进行:

  1. 定义后台任务类型:使用BGTaskScheduler注册自定义的后台任务类型,并指定任务的执行逻辑。
  2. 创建后台任务请求:根据定义的后台任务类型,创建相应的后台任务请求,并设置请求的执行时间和要执行的代码。
  3. 提交后台任务请求:使用BGTaskScheduler提交后台任务请求,系统会在适当的时候执行该任务。
  4. 处理后台任务:在AppDelegate中的handleAppRefreshTask方法中处理后台任务的执行逻辑,包括获取最新数据、更新UI等操作。

需要注意的是,具体的后台任务处理方式和逻辑会根据应用程序的需求而有所不同。可以根据具体的业务场景和需求,选择合适的后台任务类型和执行方式。

腾讯云提供了一系列与iOS开发相关的云服务产品,包括云服务器、云存储、人工智能等。具体推荐的产品和产品介绍链接地址可以根据具体的需求和场景来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在后台获取内容并刷新App

2、在启动时调用UIApplication的setminimumbackfetchinterval方法。(指定后台取回操作之间必须经过的最小时间量。)...3、实现AppDelegate中的application:performFetchWithCompletionHandler:方法。(告诉app,是否有数据下载从而开启fetch操作) ?...Figure 1 当系统调用AppDelegate的application:performFetchWithCompletionHandler:方法时,配置一个NSURLSession对象来下载新数据...当完成更新App后,回调Block提供正确的结果(包括没有合适的新数据) 注意: 及时调用完成处理程序,以及正确的结果,可以帮助确定应用程序未来的执行时间。...initialization… return true } func application(_ application: UIApplication, performFetchWithCompletionHandler

1.2K60

iOS13 Scene Delegate

当用户开始与scene进行交互(例如从应用切换器中选择场景)时,会调用 sceneWillResignActive(_:) 当用户停止与scene交互(例如通过切换器切换到另一个场景)时调用...三、SceneDelegate适配 从iOS13开始AppDelegate不再有window属性,window属性被定义在SceneDelegate中。...这是因为iOS13中AppDelegate的职责发现了改变: iOS13之前,AppDelegate的职责全权处理App生命周期和UI生命周期; iOS13之后,AppDelegate的职责是: 1、...因此,iOS13以前创建项目如果不需要多窗口就不需要任何改动,而iOS13以后创建新项目时,就要做一些适配: 1....在保留Application Scene Manifest配置项不予删除时(其中,项目是否支持多窗口功能是个可勾选项),AppDelegate的生命周期方法不再起作用,需要在SceneDelegate中使用

5.3K20
  • iOS13微信收款到账语音提醒开发总结

    随着WWDC2019后推出了iOS13系统,苹果已不再允许将PushKit应用在非Voip语音通话的场景上,开发者必须在接入CallKit的情况下才能使用PushKit。...一、背景 随着苹果爸爸在WWDC2019发布了新的iOS13,两年前的这篇微信iOS收款到账语音提醒开发总结方案已经不再适用,具体的原因是iOS13中(准确的说是使用XCode11编译)苹果不再允许PushKit...在iOS13中,苹果比以往更关注用户的隐私以及设备的电池续航问题,所以对PushKit的能力进行了收拢。...这篇文章总结了在iOS13下的语音播报迁移方案以及一些需要注意的问题。目前微信的7.0.10版本已经带上了这部分的特性。...如果你30s内没调用handler方法,并且没有实现serviceExtensionTimeWillExpire方法,那么系统会帮你主动推送后台推给客户端的原内容。

    5.8K60

    Background Fetch

    这里设置为UIApplicationBackgroundFetchIntervalMinimum,意思是告诉系统,尽可能频繁的调用我们的Fetch方法。...Step 3 开始实现我们的Fetch方法,在ApplicationDelegate类中加入下面这个方法: - (void)application:(UIApplication *)application performFetchWithCompletionHandler...); completionHandler(UIBackgroundFetchResultFailed); } } 这个方法每次系统执行Background Fetch时都会被调用...执行完下载任务之后,需要立即调用completionHandlerblock。文档中提到系统用耗时来估算这次fetch的电量消耗和数据消耗,如果耗时比较长,未来可能减少被调用的机会。...直接运行程序,在Xcode的菜单中,选择”Debug” -> “Simulate Background Fetch”,你会发现会先打开App,然后后台挂起,接着执行(void)application: performFetchWithCompletionHandler

    2.3K30

    iOS 14 egret H5游戏卡顿问题分析和部分解决办法

    也是类似的情况,iOS14比iOS13渲染fps低,iOS14只有8fps左右,而iOS13有40+fps。...由此可见,iOS14 webgl性能确实比iOS13有明显下降。 分析 从egret的监控来看,js层面的耗时(包括顶点计算、调用webgl)都没有明显问题,iOS14比iOS13甚至还有一些优化。...但实际渲染帧频,iOS14又明显比iOS13更低,问题应该出于safari内部对webgl接口的具体实现上有一些改变。...性能结论 iOS14对比iOS13和以前版本,在webgl渲染性能上有明显下降,尤其在drawcall次数较大、渲染面积较大或使用较多颜色混合滤镜情况下,下降尤其明显。...针对iOS14,虽然能在一些方面改善性能,但单纯从js角度,无法让webgl渲染性能恢复到iOS13的水平,只能寄望于苹果官方自行修复底层问题(已有不少反馈到苹果论坛)。

    3.5K31

    iOS10-iOS15主要适配回顾

    更改了cell布局视图,之前将视图加载在cell上,将会出现contentView遮罩,导致事件无法响应,必须将customView 放在 contentView 上 2、UIDatePicker默认样式不再是以前的...3、IDFA必须要用户用户授权处理,否则获取不到IDFA 4、 UIPageControl的变化 具体参考iOS 14 UIPageControl对比、升级与适配 ios13适配 -1、 iOS 13...对素材适配也做了调整 2、支持第三方登录必须,就必须Sign In with Apple 3、MPMoviePlayerController 废弃 4、iOS 13 DeviceToken有变化 5、模态弹出默认不再是全屏...UserNotifications.framework框架 2、UICollectionViewCell的的优化,新增加Pre-Fetching预加载机制 3、苹果加强了对隐私数据的保护,要对隐私数据权限做一个适配,iOS10调用相机

    1.2K50

    iPadOS生产力翻身,Mac Pro官方攒机 | 软、硬皆出彩的WWDC19

    除了重头戏 IOS13操作系统更新之外,还有全新的TV OS,提供了全新的多用户管理;Apple Watch有了独立的App Store和独立应用接口;针对iPad,IOS13被重新命名为iPad OS...苹果软件工程高级副总Craig Federighi 介绍,iOS13会让Face ID的速度快30%,App的打包方式会变化,容量会小50%,更新版小60%。启动App的速度会比前代iOS快一倍。...这是iPad 基于 iOS的全新发布 ,但从此不再叫 iOS 了。iPad OS针对此前iOS在iPad上面的多个短板进行了拟补。 ?...iPad 上的 Safari 可以访问电脑版网站,不再是以前的移动版,支持了更新的下载管理,在文字方面的编辑处理非常方便,效率可以提升很多。此外,还有悬浮小键盘,不会非常占用很多屏幕显示面积。...这拉低了写代码的门槛,入门者在这个基础上开发的App,还能调用iOS设备上的现成框架,例如ARkit等。 ?

    1.2K40

    【移动端bug】iOS 下 Input 和 fixed 的问题

    你们做移动端页面开发,绝逼也会碰到这个问题的,迟早的问题而已,这种兼容性问题真的是很烦人的,文章很长,看是不可能看的了,所以收藏备用吧 本次文章主要描述两个问题 1、IOS11 下,键盘弹起时导致的光标错位 2、IOS13...下,键盘弹起再收起时导致的 DOM 错位 先来简单描述一下这两个问题 第一个问题 IOS11 下,当你激活定位元素中的输入框的时候,就会发生光标错位 第二个问题 IOS13 下,当你激活定位元素中的输入框时...fixed 定位,查了如果在fixed 元素中有input元素,然后input 元素激活的时候,就会出现这个问题 如果弹窗使用 absolute 定义,那么就不会有问题 但是这样整个页面也要做处理,页面不再是...isIOS) { return () => {}; } // 只有在 IOS13 才 滚动回原来位置 const timer = debounce...this.scrollY = 0; // 重置 } }, 200); return timer; })(); } 然后在输入框中就这么调用

    4.6K61

    干货 | 深入浅出Apple响应式框架Combine

    ; 7)最后通过earseToAnyPublisher将内部产生的Publisher类型擦除,因为外部关心的是Publisher携带的UserResponse和CustomAPIError; 8)最终调用...三、实战 3.1 自定义Publishers和Subscribers iOS13系统内置了诸如KVO,Notification,URLSession,Timer的Publisher,所以大部分场景开发者不需要自定义的...(:)方法,系统内置的Subscriber.Sink在receive方法中会调用request(.unlimited),这里不再request填充任何代码,是因为我们只想当点击事件发生就立即处理,无论当前的请求次数是多少...2)调用系统内置的assign方法将validToRegisterPublisher产生的value绑定到按钮的isEnabled属性上。 最终我们用Combine实现了MVVM模式的注册业务。...Combine只支持iOS13,或许让部分开发者觉得实际离我们还很远,但截止目前,根据Apple在2020WWDC前公布的数据,iOS13设备占有率已达92%以上,相信随着iOS14的到来,iOS13占有率会更高

    3.9K31

    iOS-定位

    locationManagerDidChangeAuthorization:(CLLocationManager *)manager; -通过manager.authorizationStatus对象方法获取当前定位权限,此方法在iOS13...API,在用户抉择后,再次调用无效; -如果调用requestWhenInUseAuthorization申请过使用期间的定位权限,并且得到用户许可,则之后仍可调用requestAlwaysAuthorization...申请一次后台定位权限(即权限升级); -iOS13后,直接调用requestAlwaysAuthorization申请权限时,权限弹窗与调用requestWhenInUseAuthorization一样...(image-3fd3da-1637218463749)] 2、开始定位 -此处直接在主线程开始定位,如果需要在子线程开始定位,则需要开启子线程的runloop,此处不再累述。...; } } } 5、定位权限状态变更 //iOS13及以前版本回调 - (void)locationManager:(CLLocationManager *)manager

    1.3K20
    领券