iOS退到后台,开始执行任务

2017-06-22  本文已影响44人  灵魂开瓶师

无独有偶,我们公司就是搞特殊处理,退到后台才触发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分钟,或许苹果爸爸又改了。

代码块:

初始化定义 applicationDidEnterBackground:方法体处理 结束后的销毁过程 计时器的打印

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

上一篇下一篇

猜你喜欢

热点阅读