2014-11-20 2 views
2

Я столкнулся с проблемой утечки батареи iPhone. В моем приложении я использую акселерометр для подсчета шагов. Я подписываюсь на диспетчер местоположений, чтобы сохранить акселерометр активным в фоновом режиме (чтобы он продолжал выполнять шаги регистрации). Конечно, я использую фильтр большого расстояния, поэтому локализация не должна вызывать такой большой разряд батареи.iPhone Battery Drain

Расположение настройки менеджера:

locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; 
locationManager.distanceFilter=3000; 

// Даже я использовал startMonitoringSignificantLocationChanges также.

[locationManager startMonitoringSignificantLocationChanges]; 

К сожалению, примерно через 5 часов моя батарея пуста. По сравнению с приложением «Перемещения» (https://itunes.apple.com/in/app/moves/id509204969?mt=8) их приложение потребляет очень большую батарею, но они все равно отслеживают ВСЕ, пока приложение находится в фоновом режиме. Я поражен тем, как они справляются с проблемой батареи. Когда они также используют акселерометр & менеджер местоположения. Я очень благодарен за любые рекомендации, предлагаемые в этом отношении о том, как они это достигают.

Спасибо!

ответ

0

Вы должны посмотреть на использование инфраструктуры Core Motion, а не на менеджер местоположения. Проведите поиск в «Событиях движения» в справочной системе Xcode, чтобы найти соответствующие документы.

+0

Я использую структуру Core Motion, но что делать, чтобы отслеживать всю активность, когда приложение находится в фоновом режиме. –

Смежные вопросы