Сервис уходит в паузу при блокировке телефона

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение rezak90 » 25 дек 2012, 21:19

а как же осуществляется длительная загрузка контента в программах? как идёт непрерывное http соединение? все они через сервис работают. или я чего то не понял? ведь у них же приложения не прерывается если телефон блокируется...
R.id.team
Политика на форуме запрещена

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение neoksi » 25 дек 2012, 21:30

Они работают через сервис, но при длительной операции запрещают процессору уходить в сон. Например у меня аларм вызывается с использованием в ключе _WAKEUP, что пробуждает процессор, и моему сервису хватает времени пока ЦП не заснул сделать все операции. Если будет не хватать, то я дополнительно в сервисе на время операции заблокирую возможность ЦП заснуть.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение rezak90 » 25 дек 2012, 21:53

а не чревато последствиями так делать? JVM может килнуть такой процесс. например при не хватки памяти.
R.id.team
Политика на форуме запрещена

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Сервис уходит в паузу при блокировке телефона

Сообщение powercat » 25 дек 2012, 23:34

neoksi писал(а):Они работают через сервис, но при длительной операции запрещают процессору уходить в сон. Например у меня аларм вызывается с использованием в ключе _WAKEUP, что пробуждает процессор, и моему сервису хватает времени пока ЦП не заснул сделать все операции. Если будет не хватать, то я дополнительно в сервисе на время операции заблокирую возможность ЦП заснуть.
А как ты заблокируешь процессор, вернее в какой точке, если сервис встает в паузу в onStartCommand...т.е. аларм разбудил проц, начал передачу данных в сервис (просто пнул сервис), а сервис успел заснуть...где ставить wakelock.aciqure? Сразу за onStartCommand - нельзя, т.к. может заснуть не дойдя ДО него...

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение neoksi » 25 дек 2012, 23:36

rezak90
Все может быть, но пока код оптимален и срабатывает за секунды.
А вообще нужно тестировать приложение на реальных устройствах, если сервис в фореграунд не отправить, то его в любой момент могут без предупреждения кильнуть, даже когда памяти хватает.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение neoksi » 25 дек 2012, 23:38

powercat писал(а):
neoksi писал(а):Они работают через сервис, но при длительной операции запрещают процессору уходить в сон. Например у меня аларм вызывается с использованием в ключе _WAKEUP, что пробуждает процессор, и моему сервису хватает времени пока ЦП не заснул сделать все операции. Если будет не хватать, то я дополнительно в сервисе на время операции заблокирую возможность ЦП заснуть.
А как ты заблокируешь процессор, вернее в какой точке, если сервис встает в паузу в onStartCommand...т.е. аларм разбудил проц, начал передачу данных в сервис (просто пнул сервис), а сервис успел заснуть...где ставить wakelock.aciqure? Сразу за onStartCommand - нельзя, т.к. может заснуть не дойдя ДО него...
В таком случае я заблокирую процессор непосредственно в BroadcastReciver, а в сервис отправлю ссылку на блокировку. В самом сервисе по завершении буду проверять не пуста ли ссылка и снимать блокировку.

П.С. Но у меня такой проблемы нет, так как сервис в фореграунде крутится, чтоб его не кильнуло. Туда его запихнул, так как не мог отловить момент килла, чтоб сохранить данные, плюс в нем я храню все статичные и динамические переменные программы, чтоб их каждый раз не читать. Я как бы сервис превратил в ядро всей программы.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Сервис уходит в паузу при блокировке телефона

Сообщение powercat » 26 дек 2012, 11:10

В фореграунде - подразумеваешь, что запрет убивания?

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сервис уходит в паузу при блокировке телефона

Сообщение neoksi » 26 дек 2012, 18:18

powercat писал(а):В фореграунде - подразумеваешь, что запрет убивания?
Ну да, это повышает приоритет и запрещает убивать, побочным явлением является необходимость держать иконку в трее.

Ответить