Android: включение и обслуживание

В настоящее время я изучаю, как создавать и использовать службы на Android. Я просмотрел SDK android для дальнейшей помощи, и я нашел андроид: enable = [true | False] .

В SDK говорится, что:

Атрибуты и атрибуты должны быть «истинными» (по умолчанию они оба), чтобы служба была включена. Если либо «false», служба отключена; Он не может быть создан.

Поэтому я хотел бы знать, в чем состоит интерес / почему (в общем)

  • Установка приложения позволяет использовать «false».
  • Установка разрешения службы как «ложь».

Я говорю, что если мы включим сервисную службу как ложную, нет способа вызвать эту услугу, так почему мы создаем эту услугу в первую очередь?

Благодарю вас и прошу прощения за такое длинное сообщение.

Solutions Collecting From Web of "Android: включение и обслуживание"

Новый SAF (Storage Access Framework) является хорошим примером использования атрибута android: enabled. http://developer.android.com/guide/topics/providers/document-provider.html

Атрибут android: enabled установлен в логическое значение, определенное в файле ресурсов. Цель этого атрибута – отключить поставщика на устройствах под управлением Android 4.3 или ниже. Например,

android:enabled="@bool/atLeastKitKat" 

Помимо включения этого атрибута в манифест, вам необходимо сделать следующее: в файле ресурсов bool.xml под res / values ​​/ добавьте эту строку:

 <bool name="atLeastKitKat">false</bool> 

В файле ресурсов bool.xml под res / values-v19 / добавьте эту строку:

 <bool name="atLeastKitKat">true</bool> 

Установка приложения позволяет использовать «false».

Я не знаю, зачем мне это нужно.

Я говорю, что если мы включим сервисную службу как ложную, нет способа вызвать эту услугу, так почему мы создаем эту услугу в первую очередь?

Как правило, это правда. android:enabled , по сути, унаследован для всех компонентов, поэтому он не уникален для служб. Вот сценарии, в которых он может быть использован:

  • Упражнение : вы хотите иметь вторую иконку в панели запуска, но только в том случае, если пользователь купил что-то через покупку через приложение (например, обновления до функций «Pro»)

  • BroadcastReceiver : вы хотите получить контроль во время загрузки через ACTION_BOOT_COMPLETED , но вам не нужно, чтобы все время

  • Service и ContentProvider : у вас есть семейство приложений, в которых вам нужна (и требуется) одна реализация поставщика услуг / контента, даже если несколько пользователей из вашего семейства установлены пользователем

В этих случаях вы можете отключить компонент ( android:enabled="false" ) в манифесте и использовать setComponentEnabledSetting() и setComponentEnabledSetting() для условного включения их позже.