Android - Как я могу записать в файл, когда время ожидания экрана - PullRequest
1 голос
/ 20 сентября 2011

Мы пишем (отраслевое) приложение, которое поддерживает свой собственный файл журнала (я знаю, что мы должны использовать журнал Android, но в бизнес-целях нам нужно поддерживать этот файл журнала в очень специфическом формате.) Это приложение не для массового рынка, и пользователи будут хорошо осведомлены о разрядке батареи, от которой пострадает приложение.

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

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

Мы знаем, что приложение не уничтожается системой (из-за службы переднего плана), так как при перезапуске все остается, как должно. (Перезапуск возвращает нас к другому экрану)

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

Должен быть способ, которым мы можем писать в файл всегда.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2014

Оказалось, что это проблема, связанная с устройством / платформой, поскольку проблема со временем исправилась!

0 голосов
/ 20 сентября 2011

Трудно сказать, не видя код.Учитывая ваше описание, частичная блокировка wake является лучшим выбором, она должна препятствовать переходу процессора в спящий режим, чтобы вы могли запускать любой код, который вам нравится, пока вы удерживаете wakelock.Из вашего описания это просто звучит так, будто частичная блокировка следа не действует.Проверьте код, чтобы убедиться, что вы что-то делаете, например, снимаете блокировку, когда дисплей устройства переходит в спящий режим.

...