ios开发-程序压后台后,悄悄的抓取数据~~
2015-05-28 00:00
381 查看
我们使用某个app的时候,当我们将程序压到后台之后,我们希望它还能从服务器抓取一些数据,类似微博,微信,qq这些程序压后台
之后,我们依然能看到icon上显示未读数量。但是ios系统是伪多任务操作系统。
当我们将程序压后台之后,大概过1分钟,程序就会被关闭。就不能抓取数据了。很久之前的做法是:压后台之后,播放一个没有声音
的音频,保证程序存活。然后苹果很快发现了这种方法,并禁止了。我们用这种方法提交审核之后,一般都会被苹果驳回。当然,苹果
依然很贴心的给我提供了相应的解决办法。(使用swift演示。oc的方法与swift一致)
第一步,如图,设置
第二步,在AppDelegate中
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
中设置最小后台抓取时间
第三步,在AppDelegate中实现一个代理方法,并编写代码
这一步中,有几点注意点
1. 不能做太大数据量的请求,要尽量的小
2. 网络请求,结束后,一定要通过回调方法,告诉系统此次网络请求的结果
- 有数据
- 无数据
- 错误
系统可以根据报告,自动调度后台的网络数据抓取的频率,具体的调度时间,程序员无法干预
3. 如果后台抓取数据过大,同时网络`超时`频繁,整个后台任务会被系统挂起,不再调度
第四步,在设置如图的
之后,我们依然能看到icon上显示未读数量。但是ios系统是伪多任务操作系统。
当我们将程序压后台之后,大概过1分钟,程序就会被关闭。就不能抓取数据了。很久之前的做法是:压后台之后,播放一个没有声音
的音频,保证程序存活。然后苹果很快发现了这种方法,并禁止了。我们用这种方法提交审核之后,一般都会被苹果驳回。当然,苹果
依然很贴心的给我提供了相应的解决办法。(使用swift演示。oc的方法与swift一致)
第一步,如图,设置
第二步,在AppDelegate中
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
中设置最小后台抓取时间
//设置最小后台抓取间隔 application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
第三步,在AppDelegate中实现一个代理方法,并编写代码
///后台抓取数据的代理方法 func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { //请求需要获取的数据 HJCStatus.loadUnReadStatus { (count) -> () in application.applicationIconBadgeNumber = count if count > 0 { //回调,告诉此次网络请求的结果 completionHandler(UIBackgroundFetchResult.NewData) }else{ //回调,告诉此次网络请求的结果 completionHandler(UIBackgroundFetchResult.NoData) } } }
这一步中,有几点注意点
1. 不能做太大数据量的请求,要尽量的小
2. 网络请求,结束后,一定要通过回调方法,告诉系统此次网络请求的结果
- 有数据
- 无数据
- 错误
系统可以根据报告,自动调度后台的网络数据抓取的频率,具体的调度时间,程序员无法干预
3. 如果后台抓取数据过大,同时网络`超时`频繁,整个后台任务会被系统挂起,不再调度
第四步,在设置如图的
相关文章推荐
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- iOS开发之数据存取2-CoreData后台查询数据
- iOS开发之使程序在后台运行
- IOS开发模块总结(二)后台运行程序(1) 后台运行程序详解(一)
- IOS开发模块总结(二)后台运行程序(1) 后台运行程序详解(二)
- IOS开发模块总结(二)后台运行程序(2)Task completion-UIBackgroundTaskIdentifier
- IOS开发笔记2-CIDE的使用与数据类型/第一个C程序
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- iOS开发——网络使用技术OC篇&网络爬虫-使用正则表达式抓取网络数据
- iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- iOS开发:保持程序在后台长时间运行
- iOS开发:保持程序在后台长时间运行
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- IOS开发学习二十二 网络程序开发时数据监控
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- iOS开发:保持程序在后台长时间运行
- iOS开发- 蓝牙后台接收数据(BLE4.0)