Par la définition de votre récepteur android:process=":remote"
vous exécutez votre récepteur dans un processus différent (= VM). Pour les cas d'utilisation, vous n'avez pas besoin d'exécuter ce dans un processus différent, et tout ce que vous voulez faire peut probablement fonctionner juste une fine localement (dans votre APK processus).
L'inconvénient de l'utilisation d' android:process=":remote"
, c'est que vous avez besoin de ressources supplémentaires pour qu'il fonctionne (dans ce cas, un processus distinct). Ce faisant, vous êtes essentiellement en traitant avec 2 VMs, et certains modèles comme des singletons, les champs statiques ne peuvent pas être partagés entre votre application et de votre service à distance.
L'avantage de l'utilisation de android:process=":remote"
, c'est que pour certains cas d'utilisation, il peut être utile de démarrer un service qui va continuer à courir (dans son propre processus) après que vous avez de l'arrêt de votre application, ou si vous voulez des clients distants pour être en mesure de lier à votre service. Votre récepteur de radiodiffusion ne va pas bloquer vos applications thread principal lors de l'exécution dans un processus séparé lors de l'appel de la onReceive()
méthode (toutefois, il existe d'autres moyens de mise en œuvre de ce).
J'ai trouvé que la plupart du temps, la plupart des cas d'utilisation, vous pouvez vous en sortir sans l'aide d' android:process="remote"
.