Услугу можно отключить в любое время через меню настроек. Он также может быть в любой момент убит Android, если решит, что ему нужны ресурсы для текущей работы. onDestroy()
будет вызываться независимо, поэтому используйте его для хранения всего необходимого.
Служба работает в фоновом режиме, но через основной поток пользовательского интерфейса. Таким образом, можно заблокировать работу телефона через сервис. Похоже, что телефон заблокирован, когда это действительно служба, пытающаяся что-то сделать. Любая процедура блокировки должна использоваться в потоке, таком как таймер Java, поток Java или AsyncTask.
В любой момент времени может быть только одна работающая версия сервиса. Однако вызов startService(myService)
, если "myService" уже запущен, по существу переопределит текущую работающую службу, и onStartCommand()
будет вызван снова. Однако для его остановки требуется один вызов stopService(myService)
, независимо от того, сколько раз был вызван startService(myService)
.
stopService(myService)
не остановит службу, если служба связана с чем-либо. Он будет ждать, пока все привязки будут удалены, прежде чем служба остановится.