Почему Android Service был сделан как еще один компонент приложения?
Что касается других компонентов приложения, таких как действия,Intent, Broadcast Receiver, я могу понять их вариант использования, но любой сценарий использования Service, записанный в документации, может быть достигнут с помощью простого Java-класса, имеющего статические члены (переменные и методы) . Например, если мне нужна служба загрузки файлов. У меня может быть статический метод, который будет получать taskListener и другие необходимые параметры (например, url файла) в аргументе, загружать файл асинхронно и передавать обратный вызов методу обратного вызова taskListener. Так почему я должен использовать сервис для этого.
Пожалуйста, кто-нибудь объяснит мне причину использования сервиса с примером
1 ответ
Во-первых, сервис может быть запущен или привязан извне приложения, если вы хотите, с помощью экспорта сервиса. Это нельзя сделать с помощью простого Java-класса. Это важно для большинства специализированных служб (методы ввода, AccessibilityService
, TileService
, так далее.).
Во-вторых, сервис повышает важность процесса, сообщая Android, что он выполняет работу от имени пользователя. Это помогает поддерживать процесс дольше, пока Android не завершит этот процесс, чтобы освободить системную память для других приложений. Это нельзя сделать с помощью простого Java-класса. Так, например, хотя вы можете загрузить файл, используя простой класс Java, Android может завершить ваш процесс, прежде чем эта загрузка может быть завершена. Это менее вероятно, если загрузка управляется службой.