Pregunta

Tengo una aplicación sin actividad de lanzador que funciona correctamente desde Android 1.5 a Android 2.3.4. Está iniciado por mi receptor de transmisión. Sin embargo, en Honeycomb (Motorola Xoom), mi receptor de transmisión no funciona en absoluto (no atrapa ninguna intención). Si agrego la actividad del 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>

Luego, mi aplicación funciona correctamente (el receptor de transmisión captura todas las intentos necesarias e inicia mis servicios).

¡Estaría muy agradecido por la ayuda!

¿Fue útil?

Solución

¿Estás ejecutando Honeycomb 3.1 o superior? Si es así, eche un vistazo aquí. Cuando su aplicación está instalada, está en estado detenido. Cuando se lanza la aplicación por primera vez, se mueve fuera del estado detenido.

Una aplicación en el estado detenido no se iniciará con todos los intentos de transmisión. El remitente de la intención de transmisión tiene que especificar el Intento.flag_include_stopped_packages FLAG si también quiere lanzar 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. Cada vez 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 al estado detenido para administrar aplicaciones en la configuración del dispositivo.

Otros consejos

En Android 3.1 y superior, BroadcastReceivers No se invocará hasta que el usuario haya iniciado la aplicación al menos una vez por algún otro medio, como lanzar una actividad.

Dado que los usuarios tienden a confundirse mucho con las aplicaciones que no tienen una actividad, realmente debería haber tenido una actividad en primer lugar, para la ayuda en línea si nada más. Con Android 3.1, eso es aún más importante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top