Когда мое приложение запускается в течение нескольких часов, телефон Android блокируется

Всякий раз, когда я оставляю приложение в течение некоторого времени (~ 9 часов в последний раз), любая работа, на которой работает телефон, перестает отвечать на запросы и должна быть принудительно закрыта, после чего появляется только черный экран под областью уведомлений слайдов и нажатие назад или домашние изменения ничего. Я тоже не могу выключить телефон, поскольку он просто бесконечно вращается, пытаясь отключить телефон. Мне нужно удалить и снова вставить аккумулятор.

Мое приложение имеет фоновый сервис, который следит за устройством Bluetooth и запускает прием потоков с 30-секундными таймаутами. Я считаю, что я правильно их обрабатываю, поскольку на моем экране отладки есть только 1. Я видел это поведение при замораживании телефона, когда устройство подключено в течение всего времени и не подключено вообще.

Я пробовал держать телефон подключенным к logcat, чтобы узнать, что произойдет, когда телефон замерзнет, ​​но он всегда перестает получать обновления с телефона через некоторое время, может быть, час или два в лучшем случае? Трудно оценить, так как я обычно делаю что-то еще, ожидая.

У кого-нибудь есть какие-либо советы по поводу того, что может быть причиной этого или как я могу получить дополнительную аддонную реакцию для работы?

    Если ваша служба работает в фоновом режиме, ОС может убить ее через некоторое время, и вы должны знать, как ее обрабатывать внутри службы.

    Услуги, которые выполняют большую работу, будут хорошими кандидатами на убийство.

    Если вы хотите, чтобы ваш сервис выполнял долгую работу (30 секунд – довольно продолжительное время), вы должны настроить службу как службу переднего плана с уведомлением.

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

    Для получения дополнительной информации о том, как работают службы на android, прочитайте эту ссылку .