У меня была прилка, которая должна была всё время слушать сокет и раз в 20 секунд ещё отправлять запрос на сервер. Вот я сделал всё по-честному - форграунд сервис, отключение оптимизации батареии, все дела. Но после фриза сокет переставал получать и отправлять пакеты. Но как-только экран включался, сразу в сокет насыпалось всё, что сервер отправлял.