【问题标题】:iOS7 Background FetchiOS7 后台获取
【发布时间】:2013-10-07 19:23:47
【问题描述】:

我正在尝试实现新的 iOS7 应用刷新。我不认为它工作正常。

我加到info.plist

必需的后台模式 - 应用从网络下载内容

在我的主视图控制器中,

  1. UIApplicationDelegate 设置为委托
  2. Viewdidload我输入[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:1.0];

  3. 我添加如下方法

    - (void)application:(UIApplication *)application 
        performFetchWithCompletionHandler: 
        (void (^)(UIBackgroundFetchResult result))completionHandler {
            NSLog(@"Refresh from Background");
    }
    


我插入我的 iPhone 并启动应用程序,然后我进入 Debug -> Simulate Background Fetch

NSLog 不打印。 (如果我的应用在前台,它会将其置于后台)

谢谢!

【问题讨论】:

    标签: background ios7 fetch


    【解决方案1】:

    您可以从以下链接查看苹果的演示代码

    http://adcdownload.apple.com/wwdc_2013/wwdc_2013_sample_code/52012_ios_simplebackgroundtransfer.zip

    我尝试在我的应用程序的后台获取数据。它工作正常。

    【讨论】:

    【解决方案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 调用时才有效(模拟后台获取)。我从未收到来自设备的通知...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多