Iniciar una actividad en la aplicación principal desde un módulo de la biblioteca de Android
Estoy construyendo mi primer módulo de biblioteca que estoy planeando llenar con código reutilizable para múltiples proyectos. Mi primer obstáculo es que tengo que ser capaz de iniciar una actividad en la aplicación principal desde el módulo de la biblioteca.
Por ejemplo, tengo una actividad de pantalla de bienvenida. Se ejecuta durante 2 segundos, luego lanza la actividad principal. Creo que puedo reutilizar esta actividad de pantalla de bienvenida, y quiero ponerla en mi módulo de biblioteca. Sin embargo, no estoy seguro de cómo iniciar la actividad principal de la biblioteca.
- Biblioteca con dependencias de paquetes (aar grasa)
- Android studio agregar proyecto externo a build.gradle
- ¿Pueden las bibliotecas de Android en Gradle tener otras bibliotecas de Android como dependencias?
- Hormiga reconstruyendo proyectos de biblioteca cada vez
- Gradle: pros / contras añadiendo dependencias
Mainfest en la configuración de la aplicación principal:
<activity android:name="com.example.myLibraryModule.SplashScreen" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
El manifiesto lanza la pantalla de bienvenida que actualmente reside en mi módulo de biblioteca.
Dado que la biblioteca es una dependencia de la aplicación principal y no al revés, no estoy seguro de cómo iniciar el MainActivity
desde mi SplashScreenActivity
. No es tan fácil como:
Intent i = new intent(this, MainActivity.class); startActivity(i);
- ¿Cómo usar bincentro jcenter para publicar la biblioteca android gratis? Me pide que registre una organización y pague después de un mes
- ¿Cómo evitar que los recursos y el código no utilizados de un proyecto de una biblioteca de Android entren en mi APK?
- "La conversión al formato Dalvik falló con error 1" después de la actualización a ADT 14
- Cómo crear una versión de paquete de biblioteca de Android (aar) en Android Studio (no depurar)
- Biblioteca de clientes API de REST para Android
- ¿Cómo hacer referencia a paquetes de dependencias en una Biblioteca de Android como .aar?
- BlurBehind - No se pudo encontrar en las dependencias de Android Studio
- Android Studio 1.0 y error "Los proyectos de biblioteca no pueden establecer applicationId"
SplashScreenActivity
de su manifiesto principal y crearía un método protected
llamado startMainActivity()
o similar. Llame a este método dentro de su clase base SplashScreenActivity
en un lugar en el que normalmente desea iniciar su MainActivity
.
Entonces dentro de su proyecto principal subclase SplashScreenActivity
y anule el método startMainActivity()
para realizar un comportamiento que usted desea. No olvide poner su subclase SplashScreenActivity
dentro del manifiesto del proyecto principal.
De esta manera puede reutilizar el comportamiento de SplashScreenActivity
fácilmente en todos sus proyectos que puedan depender de él.
No deberías hacerlo de esa manera. Está fuertemente acoplando estas dos clases (la clase que comienza la actividad de la biblioteca y la actividad a cargar.
En su lugar, puede configurar una recepción de difusión en la aplicación que recibirá un objeto de intención y comenzará la actividad para usted. Si en el futuro desea que otras actividades o servicios se inicien de forma remota, podrá utilizar el mismo receptor de difusión para aceptar solicitudes de su librería. Todo lo que tienes que hacer es agregar datos a la colección de Intent's Extras que contendrá qué Activity para abrir (o cualquier otra tarea, por supuesto).
Esta solución de-pare tu lib y app, es mejor arquitectura wize (en mi opinión).
¡Buena suerte!
- Android: Administración de la versión Ad-Free y Ad supported. Ir a la compra en la aplicación?
- ¿Por qué un permiso de GCM no se concede en Android 6?