ios背景更新和下载
ios背景更新和下载
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
NSLog(@"Launched in background %d",UIApplicationStateBackground
== application.applicationState);
return
YES;
}
// 1.利用Background Fetch
- (void)application:(UIApplication
*)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration
defaultSessionConfiguration];
NSURLSession *session = [NSURLSession
sessionWithConfiguration:sessionConfiguration];
NSURL *url = [[NSURL
alloc]
initWithString:@"http://127.0.0.1/data.json"];
NSURLSessionDataTask *task = [session
dataTaskWithURL:url
completionHandler:^(NSData
*data, NSURLResponse *response,
NSError *error) {
if (error) {
completionHandler(UIBackgroundFetchResultFailed);
return;
}
completionHandler(UIBackgroundFetchResultNewData);
}];
[task resume];
}
// 2.利用Remote Notification
/*
推送的内容
{
"aps" : {
"content-available" : 1
},
"content-id" : 42
}
*/
- (void)application:(UIApplication
*)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"Received remote notification with userInfo
%@", userInfo);
NSNumber *contentID = userInfo[@"content-id"];
NSString *downloadURLString = [NSString
stringWithFormat:@"http://yourserver.com/downloads/%d.mp3",
[contentID intValue]];
NSURL* downloadURL = [NSURL
URLWithString:downloadURLString];
NSURLRequest *request = [NSURLRequest
requestWithURL:downloadURL];
NSURLSessionDownloadTask *task = [[self
backgroundURLSession]
downloadTaskWithRequest:request];
task.taskDescription = [NSString
stringWithFormat:@"Podcast Episode %d",
[contentID intValue]];
[task resume];
completionHandler(UIBackgroundFetchResultNewData);
}
- (NSURLSession *)backgroundURLSession
{
static
NSURLSession *session =
nil;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *identifier =
@"io.objc.backgroundTransferExample";
NSURLSessionConfiguration* sessionConfig = [NSURLSessionConfiguration
backgroundSessionConfiguration:identifier];
session = [NSURLSession
sessionWithConfiguration:sessionConfig
delegate:self
delegateQueue:[NSOperationQueue
mainQueue]];
});
return session;
版权声明:本文博客原创文章,博客,未经同意,不得转载。
ios背景更新和下载的更多相关文章
- iOS自动更新如何实现
APP检测更新可以使用两种方法.第一种是和安卓等系统一样,获取自己服务器的APP版本号与已安装的APP版本号比较:第二种是根据已发布到app store上的应用版本号与已安装的APP版本号比较更新.第 ...
- IOS开发-第三方SDWebImage下载网络图片的使用
从网络上请求图片时,没有使用第三方的话,下载会很慢,而且堵塞线程,还要自己处理多线程问题,效果还非常不明显,使用了SDWebImage这个第三方类库之后,下载图片就变的容易多了. SDWebImage ...
- 基于libUSB的USB设备固件更新程序(下载数据)(转)
源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libU ...
- Unity应用的iOS热更新
Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda • 什么是热更新 • 为何要热更新 • 如何在iOS 上对Unity 应用进行热更新 • ...
- 有关iOS热更新
iOS热更新的几篇文章,看完这几篇,自己集成一下.下面说一下我集成时遇到的问题. 这是原作者的JSPatch的讲解的文章:<JSPatch – 动态更新iOS APP>.<JSPat ...
- 同步、更新、下载Android Source & SDK from 国内镜像站(转载)
同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...
- ios的网络数据下载和json解析
ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知 ...
- 同步、更新、下载Android Source & SDK from 国内镜像站
转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download the android source from china mirrors 以 ...
- 体验极速Android SDK的更新与下载
首先:国内明确一点,国内由于天朝限制了google,更新和下载Android相关资料都比较吃力,因此,本文正式宣告,此问题不再是问题-------别说话,吻我 先给点福利: 关于java(Androi ...
随机推荐
- 给AspNetPager分页控件添加bootstrap样式
AspNetPager分页控件算是比较好用的一个分页控件了.想要结合bootstrap使用,官方代码入口 .pagination a[disabled]{ color: #777;cursor: no ...
- Java高效读取大文件(转)
1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung(http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 读 ...
- 三种字符编码:ASCII、Unicode和UTF-8
原文:三种字符编码:ASCII.Unicode和UTF-8 什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字 ...
- [Cocos2d-x]Mac下cocos2d-x连接pomeloserver
Pomelo 是由网易开发的基于node.js 开发的高性能.分布式游戏server框架, 也可作为高实时web应用框架. Polemo的配置这里就不赘述了,Github的wiki非常全面. 在此记录 ...
- poj 2689 巧妙地运用素数筛选
称号: 给出一个区间[L,R]求在该区间内的素数最短,最长距离. (R < 2 * 10^9 , R - L <= 10 ^ 6) 由数论知识可得一个数的因子可在开根号内得到. 所以,我们 ...
- (一个)AngularJS获取贴纸Hello World
一旦项目使用JQuery原创javascript,最近参加了一个项目,需要使用AngularJS.RequireJS比较框架,如汰渍.这里写一些博客,记录自己的学习过程,虽然冠以原来的名字,实际上都是 ...
- docker搭建基础的tomcat应用
tomcat server是眼下比較流行的开源中间件server,以下介绍怎样使用 docker 来做一个 tomcat 数据库服务.官方的仓里没有标 OFFICIAL 的 tomcat 的镜像,只是 ...
- debian(wheezy) chrome beta 38.0.2x.xxx Shockwave Flash was crashed 该解决方案崩溃.
版本号chrome beta升级到38.0.2x.xxx什么时候, flash他挂了. 调试 ./libpepflashplayer.so: /lib/x86_64-linux-gnu/libc.so ...
- PHP于Post和Get得到的数据写入到文件中
有时Post要么Get越过那我们不知道什么样的形状数据,它可以是JSON格风格或只是简单地通过数据.这一次,我们能够把他写的文字,传过来的数据是什么格式了. $val = ""; ...
- 可视化配置以及Net应用MemCache在win7
MemCache在win7上的可视化配置以及Net应用 惯例科普:MemCache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以 ...