2013-02-20 84 views
0

在我的應用程序中有一個要觀看的位置(區域)。當設備從該位置移開時(它可能小至5-10米),AlertView彈出併發出聲音。當應用程序在後臺時,會生成本地通知。點擊或滑動通知將應用程序放在前面。這工作正常。但是,在後臺運行時,位置會在15-16分鐘左右後更新停止位置。箭頭將從狀態欄中刪除。將應用程序放在前面,AlertView彈出並播放聲音。據我所知,位置服務獲得當前位置的新修正,並且顯示AlertView,因爲初始距離大於要監視的區域。由於要觀看的小區域,我認爲我不能使用「重大變化」或「didExitRegion」。真的嗎?爲什麼位置服務不能用作後臺任務?

我將info.plist中的標記設置爲「需要的背景模式」中的「應用程序註冊以獲取位置更新」。

有沒有人有一個關於什麼goiing? 我是否必須在 - (void)applicationDidEnterBackground:(UIApplication *)應用程序{}中放置一些代碼,如果是的話......應該是什麼?

由於提前,

問候,

Adri

+0

對於需要significantLocationChange是不夠的精度。在你的應用程序中:didFinishLaunchingWithOptions:方法是你檢查UIApplicationLaunchOptionsLocationKey鍵嗎? – onnoweb 2013-02-20 16:13:22

+0

@onnoweb不,這是我在appDelegate.m中的方法。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //覆蓋應用程序啓動後自定義的點。 self.viewController = [[ViewController alloc] initWithNibName:@「ViewController」bundle:nil]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 返回YES; } 請指教。 – A3O 2013-02-20 16:23:59

+0

您應該檢查該方法的options參數是否包含UIApplicationLaunchOptionsLocationKey。當您在Info.plist文件中註冊位置通知時,iOS會使用該方法在選項字典中使用該密鑰在後臺調用您的應用程序。 – onnoweb 2013-02-20 16:34:58

回答

0

startUpdatingLocation之前,你可以設置你CLLocationManager的desiredAccuracy和distanceFilter字段所需precission