Доброго времени суток.
Подскажите, почему может отваливаться работа фоновой службы на Android.
Никаких сообщений об ошибках не возникает, служба просто перестает работать через несколько суток после старта.
Как можно отладить эту проблему при работе на девайсе (узнать причину остановки), либо, возможно, остановку производит сама ОС? Сталкивался с данным вопросом на этапе реализации (указывались различные типы служб и приоритет их работы). В случае с ОС (нехваткой ресурсов или чего еще) - как можно это решить?
Сам от мобильной разработки далек, поэтому буду благодарен любой информации.
Спасибо.
Потому что приоритеты процессов, memory pressure, doze mode. И вообще, служба несколько суток? Чего? Вы ж не на виндоус ПК пишете приложение, а на мобилу. Cервисы нужны для фоновых задач, да, но предполагается, что они длятся не так долго. На андроиде так нельзя, пожалейте пользователей.
Да. Это мы понимаем.
Однако у нас довольно специфичный софт, который потребовал проброса трафика непосредственно через сеть пользователя.
Разумеется мы понимаем про батарейку, активность сети и прочее и пользователи так же понимают.
Мы не выкладываемся в стор, это чисто служебное приложение которое пользователь ставит по собственному волеизъявлению для своих нужд.
И проблема с завершением фоновой службы клиенту доставляет больше проблем нежели проблемы с постоянной активностью и разряжающая батарея.
Для windows у нас так же есть приложение )
Фоновый сервис останавливается системой при нехватке оперативной памяти. Это нормальное поведение. У вас, наверно, памяти несколько гигабайт, поэтому сервис так долго живет. Чтобы сервис не убивался, он должен иметь тип foreground - работающий на переднем плане.