En mi proyecto IntentExamples, tengo este filtro, correspondiente a un servicio.
<intent-filter>
<action android:name="biz.rpcodes.apps.intentexamples.START_SERVICE" />
</intent-filter>
En otro proyecto, UseExampleService, tengo algo como:
Intent i = new Intent("biz.rpcodes.apps.intentexamples.START_SERVICE");
startService(i);
... guiado por esta respuesta: https://stackoverflow.com/a/16439551/5181778
Mi pregunta es: ¿cómo puedo administrar mejor estas cadenas de filtro de intención en varios proyectos? La mejor solución que tengo ahora es hacer una clase que copio y pego del proyecto de Servicio en los otros proyectos, es decir:
class ExampleServiceIntents {
public static final String ExampleServiceIntents.START_SERVICE =
"biz.rpcodes.apps.intentexamples.START_SERVICE";
...
Si bien podría importar las clases de Servicio ellos mismos, new Intent(this, ExampleService.class)
me gustaría mantener las clases de Servicio en su propio proyecto.
java
project-management
android
Rick Page
fuente
fuente
Service
no esté instalada. Y siempre puede crear una biblioteca que contenga estas constantes y luego usar esa biblioteca en cada proyecto.Respuestas:
Bibliotecas compartidas de Android o enlaces simbólicos dependientes del sistema operativo.
Opción 1: Biblioteca compartida de Android
Una biblioteca formal de Android importada en cada proyecto.
Pros : seguridad tipo. Multiplataforma y funciona con control de fuente. Comprobación de sintaxis completa y soporte de editor.
Contras : sigue siendo un poco molesto importar proyectos como bibliotecas a través de los editores actuales (Android Studio o Eclipse con ADT) ya que no ofrecen muy buenas interfaces para hacerlo. Si tiene que hacer esta tarea con frecuencia, pero no con tanta frecuencia, recuerda todos los pasos cada vez, entonces puede que no valga la pena el esfuerzo. Pero si es una o dos veces para comenzar, entonces no tiene que volver a hacerlo, no está tan mal.
Opción 2 Enlaces simbólicos
Enlace simbólicamente un archivo fuente común en cada proyecto. Luego, ambos proyectos verán el archivo y los cambios, para que puedan permanecer sincronizados.
Pros : mucho más simple de implementar.
Contras : los enlaces simbólicos no funcionan tan bien con las herramientas de control de código fuente. No multiplataforma (para desarrollo) ya que los enlaces simbólicos son muy diferentes de un sistema operativo a otro. No está claro para un nuevo desarrollador que entra en el proyecto que los cambios en uno se compartan automáticamente con el otro.
Por lo tanto, debido a que la opción de enlaces simbólicos tiene más desventajas que ventajas, generalmente recomendaría la solución de biblioteca compartida para la mayoría de los proyectos. Pero, si su proyecto en particular no necesita las características de la columna de contras del enlace simbólico, entonces probablemente sea más fácil. Depende.
PD: Hay una tercera opción terrible de tener una tercera aplicación de Android completa que ofrece un proveedor de datos de Android que ofrece los valores de cadena. Pero en ese momento debe comunicarse con esa aplicación con cadenas especiales que también deben compartirse, por lo que solo está agregando un paso de abstracción pero no ha resuelto el problema.
fuente