0
我想獲取我的設備的位置24x7次。但根據蘋果文檔,應用程序最多隻能運行10分鐘。之後,應用程序會自動殺死。 我使用下面的代碼:位置服務在後臺執行
- (void)applicationWillResignActive:(UIApplication *)application
{
UIApplication * app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async (dispatch_get_main_queue(),^{
if (bgTask != UIBackgroundTaskInvalid)
{
[app endBackgroundTask: bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
}];
// Start the long-running task and return immediately.
dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
lm.locationManager.distanceFilter = kCLDistanceFilterNone;
lm.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[lm.locationManager startMonitoringSignificantLocationChanges];
[lm.locationManager startUpdatingLocation];
dispatch_async (dispatch_get_main_queue(),^{
if (bgTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask: bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
});
}
我也包括支持後臺模式爲需要的位置。
但該應用程序只運行10分鐘。我如何讓應用程序始終運行。請幫助我!
你在'didUpdateLocations:'中寫了些什麼? – samfisher 2013-04-24 07:29:13
現在,我只是在日誌中獲取位置。自應用程序在後臺10-15分鐘後,日誌停止。 – 2013-04-24 07:33:08
'significantLocationChanges'不要求你實現後臺任務。只需刪除bgtask創建並使用支持的背景模式鍵正常運行它 – samfisher 2013-04-24 07:35:50