Подразумевает ли service.startForeground wakelock? - PullRequest
0 голосов
/ 24 августа 2018

Вопрос

Мне интересно, нужно ли нам приобретать WakeLock или команда service.startForeground () в любом случае делает это для нас? Я ничего не нашел в документации.

Цель

Мы хотим удалить ненужные вещи, которые могут замедлить запуск службы, так как мы хотим начать сбор данных датчика как можно скорее, и поскольку служба может часто перезапускаться.

Context

Мы разрабатываем библиотеку Android для сбора данных с датчиков с частотой ~ 200 Гц в течение нескольких часов (среда исследования). Прямо сейчас мы получаем WakeLock и запускаем сервис захвата как ForegroundService, чтобы убедиться, что наш захват не остановлен, когда устройство не используется.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Нет, wakelock можно использовать, чтобы убедиться, что службы переднего плана работают, когда устройство переходит в спящий режим

Если вам необходимо использовать частичные блокировки пробуждения, следуйте этим рекомендациям:

  • Убедитесь, что какая-то часть вашего приложения остается на переднем плане.Например, если вам нужно запустить службу, вместо этого запустите службу переднего плана.Это визуально указывает пользователю, что ваше приложение все еще работает.

https://developer.android.com/topic/performance/vitals/wakelock#best_practices

0 голосов
/ 24 августа 2018

Чтобы ответить на мой вопрос (если больше никто не находит подробностей по этому вопросу):

В моем понимании " передний план " просто описывает, что пользователь заметит, если приложение будет убито, например. при просмотре большой страницы. По этой причине систему просят не пытаться убить службу.

  • То, что служба переднего плана работает, вероятно, не подразумевает что процессор не может перейти в режим глубокого сна.

Чтобы все время собирать данные датчика от заданного пользователем начала до остановки, нам все еще необходимо получить WakeLock самим.

...