개발자
안녕하세요. 선배님들 질문이 있습니다. ios Background modes에 location를 이용해서 앱을 죽이지 않고 계속 백그라운드에서 프로세서를 처리 하게 처리를 하였습니다. 하지만 최근에 확인해 보니 간헐적으로 백그라운드에서 처리가 안되는 문제를 확인 하였습니다. 테스트를 하는중인데 showsBackgroundLocationIndicator를 선언하면 location이 스캔이 계속 돌아가는거 같습니다. 혹시 자세히 아시는분 있으시면 코멘트 부탁 드립니다. 좋은 하루 되시기 바랍니다.^^ var locationManager: CLLocationManager = .init() override init() { super.init() setup() } func setup() { locationManager.delegate = self locationManager.pausesLocationUpdatesAutomatically = false locationManager.allowsBackgroundLocationUpdates = true locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers locationManager.distanceFilter = 99999 } // end of setup func backgroundTaskStart() { isRuning = true locationManager.startUpdatingLocation() locationManager.startMonitoringSignificantLocationChanges() } // end of backgroundTaskStart
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 09월 28일
안녕하세요. `showsBackgroundLocationIndicator`는 `CLLocationManager`의 속성입니다. 이것을 설정함으로써 사용자에게 백그라운드에서 위치 추적이 활성화되어 있다는 것을 알릴 수 있습니다. 하지만 이 속성이 상시 켜져있다고 해서 Location 서비스가 지속적으로 동작하는 것은 아닙니다. 또한, 대부분의 경우 지속적인 위치 업데이트는 배터리 소모를 크게 가중시키므로 주의해야 합니다. 문제를 조금 더 구체적으로 파악하기 위해서는 다음과 같은 내용들을 확인해볼 필요가 있습니다: 1) `locationManager(_:didUpdateLocations:)` 메소드에서 어떤 로직이 실행되고 있는지: 위치 업데이트에 따른 처리 로직 중에 앱의 상태에 영향을 미칠만한 부분이 있는지 확인해보세요. 2) `startUpdatingLocation()`과 `startMonitoringSignificantLocationChanges()` 두 메소드를 모두 호출하는 이유: 두 메소드 모두 위치 정보 갱신을 요청하나, 각각 다르게 작동합니다. 정확한 위치 정보와 배터리 소모 등을 고려하여 적절히 사용해야 합니다. 3) 애플리케이션의 백그라운드 상태 확인: 애플리케이션의 백그라운드 상태가 제대로 유지되고 있는지, 아니면 다른 요인 (예: 시스템 메모리 부족)으로 인해 종료되는 것은 아닌지 확인해보세요. 위 세 가지를 살펴봐 주시기 바랍니다. 명확한 해결책을 제시하기 어려운 점 양해 부탁드립니다. 감사합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!