2013-06-08 8 views
1

У меня проблема с моим Android FileObserver.Fileobserver в сервисе во время ожидания

У меня работает фоновый сервис (возвращается START_STICKY), который ссылается на два FileObservers. Все работает нормально, пока устройство не переключится в спящий режим, который, насколько мне известно, остановит службу.

  1. Кто-нибудь знает, что именно происходит с Service/FileObserver, когда устройство переведено в спящий режим?

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

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

  1. Будет ли запущено событие FileObserver для изменений в папках, которые произошли, пока моя служба была установлена ​​в режим сна, как только я снова включу экран?

Это не может проверить его, потому что отладка usb не позволяет устройству проснуться.

Благодарим за помощь!

ответ

1

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

Нет, он останавливает процессор.

Кто-нибудь знает, что именно происходит с Service/FileObserver, когда устройство переведено в спящий режим?

CPU остановлен. Остановленные процессоры не будут выполнять инструкции. Это напоминает, что ваш компьютер для разработки находится в режиме ожидания.

(деталь значительно более сложная, но, как правило, не имеют отношений на уровне SDK, имха)

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

No.

Будет ли FileObserver событие уволят за изменения в папках, которые СЛУЧИЛОСЬ во время моей службы был установлен в сон, как только я снова включить экран на?

Я этого не пробовал.

Это не может проверить его, потому что отладка usb не позволяет устройству проснуться.

Затем отсоедините кабель USB.Используйте операторы Log для записи результатов, которые вы хотите контролировать. Подключите USB-кабель после периода тестирования, чтобы проверить LogCat и посмотреть ваши журналы.

Вообще говоря, ваше общее решение (постоянно работающее обслуживание) является пользовательским. Пожалуйста, не жалуйтесь, когда пользователи нападают на вас с убийцами задач и кнопкой Force Stop.

+0

Спасибо за ваш ответ! – user2226184

+0

Я знаю, что непрерывное обслуживание не очень приятно, но важно, чтобы приложение функционировало. Сервис ссылается только на два FileObservers, поэтому влияние на время автономной работы очень мало. У вас есть идея, как получить новые файлы, которые мои наблюдатели пропустили, когда процессор находился в глубоком сне? – user2226184

+0

@ user2226184: «Я знаю, что постоянное обслуживание не очень приятно, но важно, чтобы приложение функционировало», - пожалуйста, по вашему мнению. Пользователи, и я, приветствуем нас. «У вас есть идея, как получить новые файлы, которые мои наблюдатели пропустили, когда процессор находился в глубоком сне?» - Какие у вас есть доказательства, что вы что-то упускаете? Если CPU остановлен, ничем не выполняются никакие процессы, и поэтому они не могут манипулировать файлами. – CommonsWare

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

  • Нет связанных вопросов^_^