Сервис не имеет UI и работает в фоновом режиме. Его жизненный цикл управляется тремя основными методами:
onCreate(): Вызывается в первый раз, когда сервис создается. Здесь выполняется инициализация.onStartCommand() / метод, вызываемый при привязке (например, onBind()): onStartCommand() вызывается при запуске сервиса методом startService(). Возвращает флаг, указывающий, как система должна восстановить сервис, если он будет убит. onBind() вызывается при привязке клиента к сервису методом bindService().onDestroy(): Вызывается, когда сервис уничтожается. Здесь освобождаются все ресурсы.Существуют два типа сервисов, влияющих на жизненный цикл:
startService(). Работает до тех пор, пока не будет явно остановлен методом stopSelf() или stopService(). Система попытается перезапустить его после уничтожения, если onStartCommand() вернул соответствующий флаг.bindService(). Существует до тех пор, пока к нему привязаны хотя бы один активный клиент. Когда все клиенты отвязываются, сервис уничтожается. onBind() возвращает реализацию IBinder, которая используется для взаимодействия с сервисом.График жизненного цикла:
plaintext
Ключевые моменты:
onCreate() вызывается только один раз.onStartCommand() может вызываться многократно, если startService() вызывается повторно.Пример onStartCommand():
java
Пример onBind():
java