IOS Background 之 Background Fetch

本文详细介绍了如何在iOS和Android平台上为定期更新数据的应用设置后台刷新策略,包括如何通过设置最小后台刷新间隔来提高用户体验并优化电量消耗。文章还提供了实现后台刷新的具体代码示例,并解释了系统在执行后台刷新操作时的行为和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.ithao123.cn/content-1363653.html

定期更新数据的app,比如及时通信类,微博等app.

定期后台获取,等打开后获取的快一些。

30分钟后打开手,获取30分钟内qq消息。如果没5分钟获取一次,那么最后一次只刷新5分钟内的数据,速度快,体验好。但是费电!

设置->通用->后台应用程序刷新。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中添加:
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
MinimumBackgroundFetchInterval 参数值是两次Fetch时间间隔,不能保证每隔这个时间间隔都会调用。这里设置为 UIApplicationBackgroundFetchIntervalMinimum,意思是尽可能频繁的调用我们的Fetch方法。

二,增加实现Fetch方法
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{};
每次系统Fetch时都会调用该方法,我 们可以在该方法中做刷新数据等操作,操作执行完成以后要调用completionHandlerblock(),比 如:completionHandler(UIBackgroundFetchResultNewData);文档中说系统会根据 completionHandler(执行的时间)来估计此次Fetch的耗电等。如果耗时耗电比较多,可能会降低被调用的次数。但这个方法也不是不限时 执行的,说是有30s的时间来执行操作。completionHandler有三个参数:
UIBackgroundFetchResultNewData 成功拉取数据
UIBackgroundFetchResultNoData 没有新数据
UIBackgroundFetchResultFailed 拉取数据失败或者超时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值