2010-07-13 2 views
0

Я использую UIBackgroundMode 'location' для получения обновлений GPS-фона, когда пользователь нажимает кнопку «Домой». В результате, если приложение осталось в фоновом режиме в одночасье, на следующее утро батарея стабильно мертва. Я сказал, что диспетчер location остановитUpdatingLocation, но не имеет никакого эффекта.Как избежать чрезмерного использования батареи в iOS4?

Я понимаю, что Apple не хочет, чтобы разработчики использовали выход - на самом деле это, похоже, мало влияет на приложение, кроме как на его задний план, - но я не могу позволить себе разрядить батарею, если пользователь не заканчивает приложение.

Любые предложения?

ответ

0

Возможно, вы можете зарегистрироваться для местного уведомления, которое информирует пользователя о том, что они должны открыть приложение, чтобы остановить отслеживание местоположения? Конечно, это не очень изящно, кажется, Apple должна позволить разработчику регистрироваться для обновлений местоположения в течение определенного периода времени, возможно, вы можете отправить запрос функции для этого. Я думаю, что Loopt контролирует в течение 24 часов, а затем завершает работу, возможно, вы могли бы исследовать, как они остановили его через 24 часа. Хотел бы я помочь больше, но я вообще не испортил структуру местоположения.

+0

Спасибо Flash, и вы правы, что приложение предназначено для работы в фоновом режиме при определенных условиях. Apple идет так далеко, что препятствует использованию служб определения местоположения в фоновом режиме - интересно, поскольку они также открыли API, чтобы разрешить именно такое поведение. Я буду продолжать смотреть ... – Roger

0

Вы можете использовать таймер и/или background task, который будет работать после установленного количества простоя и попытаться отключить GPS. Таким образом, вы все еще можете отслеживать местоположение на заднем плане вашего приложения, но через 10-20 минут он отключается.

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