2013-10-15 48 views
0

对不起我的愚蠢问题,但我不明白如何在ios7中调用背景抓取。这里是代码:后台抓取只执行一次ios7

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [application setMinimumBackgroundFetchInterval:20]; 
    return YES; 
} 

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{ 
    NSLog(@"Fetch called"); 
    completionHandler(UIBackgroundFetchResultNoData); 
    [UIApplication sharedApplication].applicationIconBadgeNumber += 1; 
} 

问题是我已经设置间隔为20秒,但它只执行一次。这种行为看起来很奇怪。也许我错了,背景获取的模拟只在默认情况下执行一次,但在真实设备上它会定期执行。我怎样才能确定它会每隔20秒被调用一次?请帮忙!

回答

0

您正在设置的是最小读取间隔,这是在再次触发背景获取之前必须经过的时间量。在那之后,iOS会使用启发式方法确定何时实际触发后台提取,以估计用户何时可能打开该应用。