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

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?

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 recibir un archivo usando NFC (Android Beam) en Android
  • Android Intent lanzamiento desde el navegador
  • Android nfc intent-filter para mostrar mi aplicación cuando nfc descubre una etiqueta
  • Enviar una transmisión sólo a actividades específicas
  • PACKAGE_REMOVED y luego PACKAGE_ADDED se disparan junto con PACKAGE_REPLACED Intent Action
  • Android IntentService no puede instanciar clase; Sin constructor vacío
  • Cómo filtrar correctamente Paquete reemplazado broadcast
  • Abrir URL de Facebook con la aplicación de Facebook
  • Redireccionamiento de HTML a un protocolo personalizado solo cuando se admite la aplicación de Android compatible
  • CONNECTIVITY_CHANGE obsoleta en el objetivo de Android N
  • Receptor de difusión de Android y filtro de intenciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.