Подтвердить что ты не робот

В чем разница между безголовым фрагментом и службой на Android?

Сервис

Служба - это компонент приложения, представляющий либо приложение, желающее выполнить более длительную работу, не взаимодействуя с пользователем, либо предоставляя функциональные возможности для использования другими приложениями.

Безглавой фрагмент

Фрагменты могут использоваться без определения пользовательского интерфейса. Для фоновой обработки рекомендуется использовать фрагменты без головы.

В чем тут разница?

4b9b3361

Ответ 1

Service получают более высокий приоритет, чем Activity на уровне процесса. Когда память низкая, система Android будет приоритизировать Service поверх Activity s, сделав Service идеальным вариантом для длительных задач. Более подробную информацию см. В статье под названием Процессы и темы.

Кроме того, когда вы указываете следующее в своем исходном сообщении:

Фрагменты могут использоваться без определения пользовательского интерфейса. Для фоновой обработки рекомендуется использовать фрагменты без головы.

Откуда вы это цитируете? Я согласен с первым предложением, но второе предложение является слишком общим. Для коротких задач (например, выполнения HTTP-запросов и т.д.) Фрагменты без головы работают нормально. Однако для выполнения длительной фоновой обработки (например, для загрузки очень большого файла и т.д.) Фрагмент без головы может быть не таким, каким вы хотите. Например, если вы использовали фрагмент без головы для выполнения долговременной задачи, и пользователь нажал кнопку "Назад", это приведет к уничтожению как Activity, так и его голова Fragment.

Подводя итог, служба является фоновым компонентом, который существует независимо от Activity, что означает, что он может продолжать работать в фоновом режиме, даже если Activity, который запустил службу, был уничтожен. С другой стороны, безгласный фрагмент всегда будет иметь связанный родительский элемент Activity. Если Activity, который содержит фрагмент, будет уничтожен системой, тогда фрагмент также должен быть убит.

Ответ 2

Вообще говоря:

Безглавые фрагменты предназначены для инкапсуляции данных. Безглавые фрагменты предназначены для инкапсуляции данных, которые могут совместно использоваться различными компонентами приложения (поскольку они могут существовать независимо от компонента пользовательского интерфейса).

Сервисы предназначены для инкапсуляции обработки. Они более независимы (и, следовательно, также более тяжелые, ресурсоемкие), чем фрагменты; они сидят на другом уровне абстракции и могут прослужить дольше в системе.

Между ними есть перекрытие.

Ответ 3

Безгласный фрагмент-фрагмент без ui, в основном используемый для хранения объекта большого размера


Сервис - его долговременная задача, запускаемая андроидом, мы можем установить приоритет для обслуживания даже приложения. Готовая услуга не остановится, если ее работа не будет завершена.