iOS7 后台获取
Posted
技术标签:
【中文标题】iOS7 后台获取【英文标题】:iOS7 Background Fetch 【发布时间】:2013-10-07 19:23:47 【问题描述】:我正在尝试实现新的 ios7 应用刷新。我不认为它工作正常。
我加到info.plist
必需的后台模式 - 应用从网络下载内容
在我的主视图控制器中,
UIApplicationDelegate
设置为委托
在Viewdidload
我输入[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:1.0];
我添加如下方法
- (void)application:(UIApplication *)application
performFetchWithCompletionHandler:
(void (^)(UIBackgroundFetchResult result))completionHandler
NSLog(@"Refresh from Background");
我插入我的 iPhone 并启动应用程序,然后我进入 Debug -> Simulate Background Fetch
NSLog 不打印。 (如果我的应用在前台,它会将其置于后台)
谢谢!
【问题讨论】:
【参考方案1】:您可以从以下链接查看苹果的演示代码
http://adcdownload.apple.com/wwdc_2013/wwdc_2013_sample_code/52012_ios_simplebackgroundtransfer.zip
我尝试在我的应用程序的后台获取数据。它工作正常。
【讨论】:
您可以在 developer.apple.com/downloads/index.action# 中找到它并搜索 ios_simplebackgroundfetch 和 simplebackgrdountransfer - 这两个应该会在 WWDC 2013 示例中弹出【参考方案2】:你应该添加
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
在方法中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
也是这个方法
(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))
completionHandler 应该添加到您的应用委托类中,而不是 UIViewController,请参阅本教程:http://www.objc.io/issue-5/multitasking.html
【讨论】:
我已经以这种方式实现了它,它仅在我从 Xcode 调用时才有效(模拟后台获取)。我从未收到来自设备的通知...以上是关于iOS7 后台获取的主要内容,如果未能解决你的问题,请参考以下文章
使用 UILocalNotifications、带有完成处理程序的远程通知和后台获取