无独有偶,我们公司就是搞特殊处理,退到后台才触发push操作,把数据传上去给服务器,再与服务器同步手机端没有的数据。这就逼迫我们想法子,我的理解是一退到后台将触发
- (void)applicationDidEnterBackground:(UIApplication*)application{}方法
所以要在这里面做文章了,发现了一个叫做UIBackgroundTaskIdentifier的对象,就是用它做延迟加载的,我根据这个对象网上查到一篇博客2015-02-28写的,说可以用
- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^__nullable)(void))handlerNS_AVAILABLE_IOS(4_0)NS_REQUIRES_SUPER;
//当应用程序留给后台的时间快要到结束时(应用程序留给后台执行的时间是有限的),这个Block块将被执行
然后我就懵懂的知道这就是需要的,“begin Background Task With Expiration Handler”==“使用到期处理程序启动后台任务”,字面上就是这个意思,太深入的执行方式还是不太了解,不过这样就够了,按照这么写就会有3分钟的后台处理时间,我的手机是iOS10.3.2系统的,测试到是3分钟,而查看之前的人说有10分钟,或许苹果爸爸又改了。
代码块:




就这样了,做个记录,参考博客:http://www.cnblogs.com/aaalice/p/4305138.html
网友评论