Pregunta

Tengo un BroadcastReceiver que se llama de vez en cuando, y me he dado cuenta de que muchas personas utilizan

android: process =":remote" 

en su receptor. Mina se utiliza para comprobar algunas cosas y si las condiciones se ajustan a continuación, activar una alarma. Mi pregunta es debo usar la línea que había publicado anteriormente en mi manifiesto? Y si es así, ¿cuáles son los beneficios de hacerlo?

¿Fue útil?

Solución

Al definir su receptor con android:process=":remote" que básicamente ejecuta su receptor en un proceso diferente (= VM). Para los casos de uso típicos, que no es necesario para ejecutar esta en un proceso diferente, y lo que quiere hacer, probablemente, puede funcionar muy bien a nivel local (en su proceso APK).

El inconveniente del uso de android:process=":remote" es que necesita recursos adicionales para que se ejecute (en este caso un proceso separado). Al hacerlo, que está básicamente tratar con 2 máquinas virtuales, y algunos patrones como únicos, campos estáticos ya no se pueden compartir entre su aplicación y su servicio remoto.

La ventaja de utilizar android:process=":remote" es que para algunos casos de uso, podría ser útil para iniciar un servicio que va a mantener en funcionamiento (en su propio proceso) después de la parada He su aplicación, o si desea que los clientes remotos a ser capaz de unirse a su servicio. Su receptor de radiodifusión no bloqueará las aplicaciones de hilo principal cuando se ejecuta en un proceso separado al llamar al método onReceive() (sin embargo, hay otras maneras de implementar este).

He encontrado que la mayor parte del tiempo, para la mayoría de los casos de uso común, que puede salirse sin utilizar android:process=":remote".

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