¿Debo usar android: process = “: remote” en mi receptor?

Tengo un BroadcastReceiver que se llama de vez en cuando, y he notado que muchas personas usan

android: process =":remote" 

en su receptor. El mío se usa para verificar algunas cosas y si las condiciones coinciden, activa una alarma. Mi pregunta es si debo usar la línea que publiqué arriba en mi manifiesto. Y si es así, ¿cuáles son los beneficios de hacerlo?

Al definir su receptor con android:process=":remote" básicamente ejecuta su receptor en un proceso diferente (= VM). Para casos de uso típicos, no necesita ejecutar esto en un proceso diferente, y lo que sea que quiera hacer probablemente se ejecute perfectamente localmente (en su proceso de APK).

El inconveniente de usar android:process=":remote" es que necesita recursos adicionales para que se ejecute (en este caso, un proceso separado). Al hacerlo, básicamente se trata de 2 VM, y algunos patrones como los singletons, los campos estáticos ya no se pueden compartir entre su aplicación y su servicio remoto.

El beneficio de usar android:process=":remote" es que para algunos casos de uso, puede ser útil iniciar un servicio que continuará ejecutándose (en su propio proceso) después de que haya cerrado su aplicación, o si quiere que los clientes remotos puedan vincularse a su servicio. Su receptor de difusión no bloqueará el hilo principal de sus aplicaciones cuando se ejecute en un proceso separado al llamar al método onReceive() (sin embargo, hay otras formas de implementar esto).

He descubierto que la mayoría de las veces, para los casos de uso más comunes, puede escaparse sin usar android:process=":remote" .