El receptor de Broadcast de Android no se ejecuta en la aplicación
Tengo una aplicación de Android, donde programo un evento (actualización de ubicación) que se ejecutará en el futuro con el administrador de alarmas. El evento programado se ejecuta como se esperaba siempre y cuando la aplicación se ejecute en primer plano o en segundo plano. Pero una vez que la fuerza cerrar la aplicación en el administrador de tareas o cuando el sistema de Android mata la aplicación debido a problemas de memoria cuando la aplicación está en segundo plano, ya no soy capaz de recibir la emisión desde el administrador de alarmas.
Como sugerido por varios posts y blogs que he intentado usar 1) Intent.Flag_Include_Stopped_Packages 2) receptor android: process = ": remote" en el manifiesto 3) receptor android: exportado = "true" en el manifiesto
- ¿Cuál es el propósito de "android.intent.category.DEFAULT"?
- Android Lanzamiento o presentación de otra aplicación a través de Intent
- Spotify intención en android?
- Redirigir la vista web de Android con el filtro de intenciones
- El redirector de Facebook del navegador de Android no siempre intenta activar la URL
En servicio:
Intent locationIntent = new Intent("com.dummy.intent"); locationIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); locationIntent.putExtra(LocationLibraryConstants.LOCATION_BROADCAST_EXTRA_LOCATIONINFO, locationInfo); context.sendBroadcast(locationIntent, "android.permission.ACCESS_FINE_LOCATION");
En Manifiesto:
<receiver android:name=".NearestStationBroadcastReceiver" android:enabled="true" android:exported="true" android:process=":remote"> <intent-filter> <action android:name="com.dummy.intent" /> </intent-filter> </receiver>
¿Puede alguien ayudarme?
- IntentFilter en NFC - Xamarin - C #
- Pestañas personalizadas de Chrome y filtro de intenciones
- Esquema host no funciona en androide lollipop, haga clic en el enlace para abrir la aplicación
- Filtro de intenciones usando path, pathPrefix o pathPattern
- Android: inicia una actividad desde la línea de comandos con la intención uri
- Android - Registrar un receptor de difusión para dos intentos?
- Diseño de la aplicación para Android: escribe el filtro de intenciones correcto
- El fragmento no se reanuda con su actividad después de usar el intercambio de intenciones
Pero una vez que la fuerza cerrar la aplicación en el administrador de tareas o cuando el sistema de Android mata la aplicación debido a problemas de memoria cuando la aplicación está en segundo plano, ya no soy capaz de recibir la emisión desde el administrador de alarmas.
Estos no tienen nada que ver con los demás, por lo que si usted ha estado simulando "cuando el sistema Android mata la aplicación debido a problemas de memoria" mediante el uso de Force Stop, ese es su problema. Una aplicación que se ha detenido a través de la configuración tiene sus alarmas eliminadas, entre otras cosas. Una mejor manera de simular su proceso de ser terminado es para terminar de DDMS.
1) Intent.Flag_Include_Stopped_Packages 2) receptor android: process = ": remote" en el manifiesto 3) receptor android: exportado = "true" en el manifiesto
Ninguno de ellos está relacionado con su problema y android:exported="true"
(y su uso de un <intent-filter>
) plantea problemas de seguridad, ya que cualquiera puede hacer que su BroadcastReceiver
se ejecute en cualquier momento, por cualquier razón .
A continuación, se muestra una aplicación de ejemplo que procesa los eventos de alarma correctamente, incluso después de que DDMS haya finalizado el proceso.
Tienes que añadir tu aplicación en la sección Configuración de Android> Aplicaciones protegidas del teléfono. Esto permite al usuario controlar qué aplicaciones permiten que se ejecuten en segundo plano.
También podría escribir un servicio para escuchar las emisiones de localización que se ejecutarán en segundo plano sin problemas si obtiene los permisos necesarios.
- Cómo pedir qt crear paquete apk para android sin iniciar un simulador
- ¿Cómo puedo retrasar la carga de vistas en mi adaptador de lista mientras el usuario se desplaza rápidamente