iOS: мониторинг уровня заряда аккумулятора расходует больше энергии?Следует ли автоматически сохранять? - PullRequest
3 голосов
/ 28 ноября 2011

У меня есть приложение GPS, которое уже использует достаточное количество батареи.Из-за характера приложения я не хочу, чтобы пользователь терял все свои данные, если их батарея умирает без их ведома.Итак, я решил, что я буду следить за батареей, а затем сохранять и останавливать данные GPS, если батарея разряжена.Я бы использовал:

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(batteryStateDidChange:)
                                             name:UIDeviceBatteryStateDidChangeNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(batteryLevelDidChange:)
                                             name:UIDeviceBatteryLevelDidChangeNotification
                                           object:nil];

Итак, несколько вопросов:

  • Может ли мониторинг батареи вызвать еще БОЛЬШЕ разряда батареи?
  • Является ли хорошей идеей автоматическое сохранение (основные данные) для пользователя непосредственно перед тем, как батарея разрядится?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Устройство уже должно отслеживать уведомления о заряде батареи, чтобы отображать уровень заряда батареи, когда время / несущая / сила сигнала видны ... Я не ожидал, что регистрация для уведомлений добавит дополнительное напряжение к чему-либо (потребление энергии ). Может быть, несколько дополнительных циклов процессора из вашего приложения для обработки уведомления. : -)

Автосохранение может быть разумной идеей.

Но другой идеей может быть прекращение использования служб GPS / CoreLocation для вашего приложения, как только батарея опустится ниже определенного уровня (или предложите это в качестве настраиваемой пользователем опции).

0 голосов
/ 01 декабря 2011

Если iDevice умирает во время работы вашего приложения или когда устройство «спит», вашему UIApplicationDelegate будет отправлено сообщение applicationWillTerminate :.

Если приложение было размещено в фоновом режиме, то вы также можете обработать сохранение в приложении вашего приложения легендаWillEnterBackground

Будьте осторожны с автоматическим сохранением, оно может случайным образом вызвать загрузку процессора, вызывая прерывистый пользовательский интерфейс с предположительно «случайными» интервалами.

...