IOS Background 之 Background Fetch

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 拉取数据失败或者超时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
background_fetch是一种在Flutter应用程序中实现后台任务处理的插件。它允许开发人员在应用程序处于后台或暂停状态时执行特定的代码。 通常情况下,当Flutter应用程序转入后台或暂停状态时,它会被系统暂停,并且无法执行任何代码。但是,通过使用background_fetch插件,我们可以定义一些需要在后台或暂停状态下执行的任务。 使用background_fetch的首要步骤是在pubspec.yaml中添加插件依赖。然后,我们可以使用Flutter的异步操作函数(例如Future和async/await)来定义任务。这些任务将会在应用程序处于后台或暂停状态时自动执行。 通过background_fetch,我们可以定期执行任务,例如更新数据、发送通知、与服务器通信等等。在设置任务的时间计划时,我们可以定义任务的延迟时间和间隔时间。延迟时间表示从应用程序切换到后台或暂停状态开始后,第一次执行任务所需的时间。间隔时间表示执行任务之间的间隔时间。 需要注意的是,background_fetch只能在支持后台任务处理的平台上使用,例如iOS和Android。此外,由于涉及到后台运行,我们需要确保应用程序的后台模式设置正确,并且用户已授予应用程序后台任务处理的权限。 总结来说,background_fetch是一个非常有用的Flutter插件,它使我们能够在应用程序处于后台或暂停状态时执行特定的代码。通过定义任务的时间计划和使用异步操作函数,我们可以实现定期执行任务的需求。请记住,在使用background_fetch时,需要确保应用程序的后台模式设置正确,并且用户已授予后台任务处理的权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值