Я пишу HTTP-сервер для Android-устройств, реализованный через NanoHTTPD.
Моя цель состоит в том, чтобы устройство разрешало входящие соединения даже при выключенном экране.
Я начал с малого, с постоянного уведомления, думая, что это сохранит мое приложение в памяти и будет работать в фоновом режиме. После блокировки устройства я мог бы продолжать просматривать веб-страницы, которые оно обслуживает, если я не оставлю его в покое примерно на минуту. Как только я это сделаю, он полностью перестанет реагировать.
Я усилил свою попытку, включив частичную блокировку процессора, но это не имело никакого значения. Затем я добавил полный WifiLock, чтобы радио оставалось включенным, и, наконец, в отчаянии, MulticastLock (я думал, что, возможно, это заставит радио прослушивать соединения). Тем не менее, после того, как около минуты не было никаких подключений, устройство перестает отвечать, даже со всеми этими блокировками.
Есть ли что-то конкретное, что я могу сделать, чтобы устройство прослушивало входящие соединения? Похоже, периодические запросы на устройство не дают ему уснуть... можно ли как-то программно эмулировать это поведение? Я не могу придумать способ.
Спасибо!
РЕДАКТИРОВАТЬ: для целей этого вопроса разрядкой батареи можно пренебречь.
РЕДАКТИРОВАТЬ: NanoHTTPD также работает как служба.