在我的應用我想使用的是iOS 7的背景取feature.I也選擇背景取複選框能力目標的部分(當然還有標誌的plist自動添加)一些數據發送到服務器。iOS7後臺抓取?
在AppDelegate中我這樣做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
//[application setMinimumBackgroundFetchInterval:10]; also tried this
return YES;
}
,然後在委託方法我這樣做:
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
LocationManager = [[CLLocationManager alloc] init];
LocationManager.delegate = self;
LocationManager.desiredAccuracy = kCLLocationAccuracyBest;
LocationManager.distanceFilter = 50.0;
[LocationManager startUpdatingLocation];
/** NEW DATA EXISTS AND WAS SUCCESSFULLY PROCESSED **/
if (YES) {
completionHandler(UIBackgroundFetchResultNewData);
}
else
completionHandler(UIBackgroundFetchResultFailed);
}
然後,我連我的iPhone Xcode和運行應用程序,並點擊模擬背景從取調試菜單。代理方法被調用並且服務器上的位置已更新一次,但它再也沒有發生過,系統從不在後臺喚醒應用程序。 我做錯了什麼?任何幫助,將不勝感激。
編輯:是否有可能使用後臺獲取在服務器上發送數據? 編輯-2如果我使用遠程通知,而不是背景,以獲取服務器上發送數據,那麼在這種情況下,能夠保證所有的系統喚醒我的應用程序了,一旦它得到遠程通知?
之前作出的任何決定都要經過下@ walle84答案評論。 – Bharat
在Xcode 6中,「模擬後臺抓取」被破壞(已驗證,在6.3.1中不起作用),並在Xcode 6發行說明的「已知問題」部分中提到。 [其他線程](http://stackoverflow.com/a/29974714/939757)[發行說明](https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes。 HTML#// apple_ref/DOC/UID/TP40001051-CH4-DontLinkElementID_32) – bretto