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

Можете ли вы запустить IntentService в отдельном процессе?

4b9b3361

Ответ 1

1) Можно ли запустить IntentService на отдельный процесс? Как? Если это так, обязательно ли связываться с ним?

Да, вы можете запустить IntentService в отдельном процессе. Просто добавьте android:process=":whatever" в запись манифеста для этой службы.

Нет, вам не нужно связываться с ним. Вы можете связаться с ним, отправив его с помощью startService()

2) Можно ли запустить IntentService на отдельный процесс и запустить его на переднем плане?

Да (см. выше). Чтобы ваш сервис работал на переднем плане, он может вызывать startForeground() всякий раз, когда он хочет это сделать. Сама служба контролирует, работает ли она на переднем плане или в фоновом режиме.

3) Какая разница между android:isolatedProcess и android:process? См.: http://developer.android.com/guide/topics/manifest/service-element.html

android:process позволяет вам контролировать, в каком процессе выполняется каждый конкретный компонент (указав имя процесса). Вы можете группировать компоненты своего приложения для запуска в отдельных процессах (например, все компоненты пользовательского интерфейса в одном процессе и все службы в другом). Поведение по умолчанию состоит в том, что все компоненты приложения работают в одном процессе.

android:isolatedProcess - это флаг (true/false), который вы можете установить, если вы хотите, чтобы конкретный компонент службы запускался в отдельном процессе, изолированном от остальной части вашего приложения. Выделенный процесс не имеет каких-либо разрешений, предоставляемых остальной части вашего приложения. Обычно разрешения предоставляются приложениям, и все компоненты приложения имеют все разрешения, которые получает приложение. android:isolatedProcess доступен только с уровня API 16 (Jellybean). См. http://aleksmaus.blogspot.de/2012/09/a-feature-of-android-jelly-bean.html и Преимущество ввода тега Isolprocess в сервисах в JellyBean [Android]