#java #android #android_service
Можете объяснить, для чего Service выносят в отдельный процесс (при помощи добавления
строки android:process в манифесте)?
Сначала я подумал, для того, чтобы, при убийстве приложения (смахиваем пальцем в
диспетчере задач), он не умирал вместе с активностью. Как показала практика — он продолжает
жить.
Потом я подумал, что это сделано для того, чтобы, когда сервис сам себя перезапускает,
не открывалась активность — и тут снова не то! Активность при перезапуске не открывается.
Потом я подумал, что это сделано для того, чтобы не тормозила активность! Но тут
на помощь приходит IntentService...
Так в чем же заключается смысл?
Ответы
Ответ 1
IntentService и Service различны и используются для разных задач. По умолчанию Service действует в UI потоке, а IntentService - в отдельном. Т.е. при сильной нагрузке на обычный сервис будет "тормозить" активити. Просто заменить на IntentService не всегда возможно и целесообразно, т.к. он используется для иных задач (единоразовое действие - сделал и помер) и, по умолчанию, не должен быть "долгоживущим", в отличие от Service (например плеер с управлением им из уведомления). Таким образом Service выносят в отдельный поток когда он должен быть "долгоживущим" и, при этом, не должен "тормозить" активити.
Комментариев нет:
Отправить комментарий