배터리에 대한 영향을 고려하여 사용자가 "멀티 태스킹/배경"처럼 항상 내 앱의 기능을 원하는지 결정할 수 있습니다. 실행 "또는 앱이 포 그라운드에있을 때. 이 스레드를 읽기 : iPhone 멀티 태스킹 - '위치'서비스 업데이트를 만드는 방법 "사용자 선택 사항"
How do I get a background location update every n minutes in my iOS application?
는 나에게 멀티 태스킹 기능을 사용하기위한 사용자 옵션을 제공하는 가장 좋은 방법이 될 수있는 일에 대해 몇 가지 아이디어를 주었다. 나는이 딜레마를 고려한 누군가가 그것에 대해 "가장 좋은 방법"을 제안 할 수 있기를 희망한다.문제 - 위치 멀티 태스킹은 UIBackgroundModes 항목을 '위치'로 설정하여 plist를 통해 사용할 수 있습니다. 이것은 응용 프로그램 전체 및 영구적입니다. 함수를 NSUserDefault에 대응시키는 방법?
가이 잠재적 인 용액 A이 - 내 제안은 이런 식입니다 : 그러나
- (void)applicationWillResignActive:(UIApplication *)application {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"wantsBackgroundLocationEventProcessing"]) {
//Continue using the location subsystem
} else {
self.locationManager = nil; //Custom setter does all required cleanup
}
}
, 내 두려움이 경우 응용 프로그램이 여전히 위치 이벤트를받을 것입니다, 그것은 단순히 사실 수 없습니다 배터리 수명에 미치는 영향은 여전히 존재합니다.
런타임 중에 UIBackgroundModes '위치'를 선택하는 방법에 대한 아이디어가 있습니까?
그래서 기본적으로 "제안 A"를 수락합니다. 배경을 입력 할 때 위치 업데이트를 끄면 내 앱이 적극적으로 등록되지 않고 plist 설정에 관계없이 위치 시스템이 배터리를 소모합니다. 나는 실제로이 방법으로 작동하는지 확인해 왔지만, 실제로 시스템이 실제로 꺼져 있는지, 아니면 내 앱 (장치에 다른 앱이 없다고 가정)에 대해서 확실하지는 않습니다. 나는이 대답이 정확하다고 믿는다 - 당신은 후자를 확인할 수 있습니까? – SG1
대답이 '예'인 경우 [locationManager stopUpdatingLocation]을 먼저 사용하고 locationManager를 놓습니다. – Allen
내 모든 테스트는 자신 옳았는지 확인합니다. 내가 참조한 문서는 모호했습니다. 그러나 올바른 대답을 알았으니 이제 진실을 진술합니다. 감사! – SG1