1

Что касается других компонентов приложения, таких как действия, Intent, Broadcast Receiver, я могу понять их вариант использования, но любой вариант использования Службы, написанный в документации, может быть достигнут с использованием простого Java-класса со статическими элементами (переменными и методами). Как если мне нужна служба загрузки файлов. У меня может быть статический метод, который получит аргумент taskListener и другие необходимые параметры (например, url файла) в аргументе и загрузит файл async и даст обратный вызов методу обратного вызова taskListener. Так почему я должен использовать сервис для этого.Почему Android-сервис был сделан как еще один экземпляр приложения?

Пожалуйста, кто-нибудь объяснить мне причину использования сервиса с примером

Заранее спасибо

+0

«Служба» имеет свой собственный жизненный цикл и время, не зависящие от «Активность». Со статическими полями и задачами async у вас есть так много возможностей для отказа. – tynn

+0

Поскольку процесс (и загрузка), скорее всего, будет удален из памяти, если у пользователя нет экрана телефона, и пользователь смотрит прямо на вашу активность, не закрывая его в течение всего времени загрузки. Когда система нуждается в памяти, она сначала закрывает действия, прежде чем переходить к услугам. – DeeV

ответ

2

Во-первых, услуга может быть запущена или связаны с извне приложения, если вы хотите, имея услуга будет экспорт. Это невозможно сделать с помощью простого Java-класса. Это важно для большинства специализированных услуг (методы ввода, AccessibilityService, TileService и т. Д.).

Во-вторых, сервис повышает важность процесса, сообщая Android, что он выполняет работу от имени пользователя. Это помогает поддерживать процесс дольше, прежде чем Android прекратит этот процесс, чтобы освободить оперативную память системы для других приложений. Это невозможно сделать с помощью простого Java-класса. Например, если вы можете скачать файл с использованием простого Java-класса, Android может завершить ваш процесс до того, как загрузка будет завершена. Это менее вероятно, если загрузка управляется службой.