Android: la aplicación sin actividad de LAUNCHER no funciona
Tengo una aplicación sin actividad de lanzador que funciona correctamente desde Android 1.5 a Android 2.3.4. Se inicia por mi receptor de difusión. Sin embargo, en Honeycomb (Motorola Xoom), mi receptor de difusión no funciona en absoluto (no captura ningún intento). Si agrego actividad de lanzador a mi manifiesto:
<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Entonces mi aplicación funciona correctamente (receptor de difusión captura todas las intenciones necesarias e inicia mis servicios).
- Error fatal: Adreno-GSL
- Icono de lanzador de Android demasiado pequeño
- Icono de fondo en Samsung Galaxy S? Cómo cambiar esto?
- Cambiar el nombre de la actividad del lanzador en una nueva versión de la aplicación
- Alojamiento de widgets en un lanzador de Android
Yo estaría muy agradecido por la ayuda!
- Icono de Lanzador y actividad separado con Android
- Aplicación de Android OOM (Memoria insuficiente) prioridades de ajuste para los procesos
- Información sobre Action MAIN y el lanzador de categorías en Android Manifest
- Android cómo ocultar programaticamente el ícono del lanzador
- Hacer un icono de lanzador dinámico
- Widget no actualizado en el reinicio del lanzador
- Creación de una actividad principal que NO aparece en la lista de lanzadores
- Android: Cómo crear un lanzador
¿Está ejecutando Honeycomb 3.1 o superior? Si sí eche un vistazo aquí . Cuando se instala la aplicación, se encuentra en estado detenido. Cuando se inicia la aplicación, se mueve fuera de estado detenido.
Una aplicación en estado detenido no se iniciará por todas las intenciones de difusión. El remitente de la intención de difusión tiene que especificar el indicador Intent.FLAG_INCLUDE_STOPPED_PACKAGES si también desea iniciar aplicaciones detenidas.
Intent intent = new Intent(MY_INTENT_ACTION); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); sendBroadcast(intent);
Si no puede cambiar el código que envía la intención, su mejor opción sería mantener la actividad del lanzador. Siempre que el usuario inicie su aplicación después de la instalación, se moverá fuera del estado detenido y comenzará a recibir transmisiones.
Tenga en cuenta que el usuario puede mover su aplicación de nuevo al estado detenido desde Administrar aplicaciones en la configuración del dispositivo.
En Android 3.1 y versiones superiores, BroadcastReceivers
no se invocará hasta que el usuario haya iniciado la aplicación al menos una vez por otros medios, como iniciar una actividad.
Dado que los usuarios tienden a ser muy confundido por las aplicaciones que no tienen una actividad, que realmente debería haber tenido una actividad en el primer lugar, para la ayuda en línea, si nada más. Con Android 3.1, eso es aún más importante.