2011-11-25 10 views
10

Actualmente estoy aprendiendo cómo crear y usar servicios en android. Busqué en el SDK de Android para obtener más ayuda y encontré el android: enable = [true | falso].android: habilitar y servicios

en el SDK se dice que:

El y atributos deben ser ambos "verdadero" (ya que ambos son por por defecto) para el servicio esté habilitado. Si cualquiera de los dos es "falso", el servicio está deshabilitado; no se puede crear una instancia.

así que me gustaría saber cuál es el interés de/por qué (en general)

  • configurar la aplicación permite como "falsa".
  • configurando el servicio habilitado como "falso".

Digo que si ponemos el servicio habilitado como falso no hay forma de llamar a ese servicio, entonces ¿por qué creamos ese servicio en primer lugar?

Gracias y lo siento por el largo mensaje.

Respuesta

16

El nuevo SAF (Storage Access Framework) es un buen ejemplo de uso del atributo android: enabled. http://developer.android.com/guide/topics/providers/document-provider.html

El androide: Habilitado atributo establecido en un valor booleano se define en un archivo de recursos . El objetivo de este atributo es deshabilitar el proveedor en dispositivos con Android 4.3 o versiones anteriores. Por ejemplo,

android:enabled="@bool/atLeastKitKat" 

Además de incluir este atributo en el manifiesto, que tiene que hacer lo siguiente: En el archivo de recursos bool.xml según Resol/valores /, añada esta línea:

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

En el archivo de recursos bool.xml según Resol/valores-v19 /, añada esta línea:

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

Ejemplo bueno y útil – matreshkin

18

configurando la aplicación habilitada como "falsa".

No conozco ninguna buena razón para hacer esto.

Digo que si ponemos el servicio habilitado como falso no hay forma de llamar a ese servicio, entonces ¿por qué creamos ese servicio en primer lugar?

En general, eso es cierto. android:enabled es, en efecto, heredado para todos los componentes, por lo que no es exclusivo de los servicios. Aquí hay escenarios en los que podría ser usado cuando:

  • Actividad: usted quiere tener un segundo icono en el lanzador, pero sólo si el usuario compra algo a través de compras dentro de la aplicación (por ejemplo, las actualizaciones de "Pro "características)

  • BroadcastReceiver: que quieren obtener el control en el arranque a través de ACTION_BOOT_COMPLETED, pero no es necesario que todo el tiempo

  • Servicio y ContentProvider: tiene una familia de aplicaciones, donde solo necesita (y desea) una implementación del proveedor de servicio/contenido, incluso si el usuario instala más de una aplicación de su familia

En estos casos, es posible que tenga el componente deshabilitado (android:enabled="false") en el manifiesto, y use PackageManager y setComponentEnabledSetting() para habilitarlos condicionalmente más adelante.

Cuestiones relacionadas