Ответ 1
Это нормально, ОС делает это регулярным.
Почему?
Каждое приложение или служба, когда они неактивны или находятся в фоновом режиме, остаются в памяти до тех пор, пока менеджер памяти Android не решит, что он либо занимает слишком много памяти, либо требует другого активного приложения/службы. Например, когда вы нажимаете кнопку home
, когда находитесь в своем приложении электронной почты. Он вернется к тому месту, где вы были при повторном открытии приложения. Поскольку это приложение было просто приостановлено и в каком-то режиме спящего режима в памяти. Если Android не должен выделять эту память ни для чего другого, он сохраняет ее там.
Чтобы убедиться, что ОС не убивает вашу службу, создается постоянная служба.
Вы можете сделать свою службу постоянной, если вы разрабатываете системные приложения. Эти службы будут в основном не подлежат уничтожению и будут помечены как "PERS" в выводе команды "Активность dumpsys оболочки adb".
http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/
Но:
Пожалуйста, используйте AlarmManager
и IntentService
, поэтому ваша служба не должна быть в памяти, кроме случаев, когда она делает значимую работу. Это также означает, что Android вряд ли сможет убить ваш сервис, пока вы находитесь в памяти, и пользователи вряд ли убьют ваш сервис, потому что считают, что вы тратите впустую память.