Indem Sie Ihren Empfänger mit definieren, führen Sie Ihren Empfänger android:process=":remote"
grundsätzlich in einem anderen Prozess aus (= VM). Für typische Anwendungsfälle müssen Sie dies nicht in einem anderen Prozess ausführen, und was auch immer Sie tun möchten, kann wahrscheinlich lokal (in Ihrem APK-Prozess) einwandfrei ausgeführt werden.
Der Nachteil der Verwendung android:process=":remote"
besteht darin, dass Sie zusätzliche Ressourcen benötigen, um ausgeführt zu werden (in diesem Fall ein separater Prozess). Dabei handelt es sich im Grunde genommen um 2 VMs, und bei einigen Mustern wie Singletons können statische Felder nicht mehr zwischen Ihrer App und Ihrem Remotedienst geteilt werden.
Der Vorteil der Verwendung android:process=":remote"
besteht darin, dass es in einigen Anwendungsfällen nützlich sein kann, einen Dienst zu starten, der nach dem Herunterfahren Ihrer Anwendung (in einem eigenen Prozess) weiter ausgeführt wird oder wenn Remoteclients gebunden werden sollen zu Ihrem Dienst. Ihr Broadcast-Empfänger blockiert den Hauptthread Ihrer Anwendung nicht, wenn er beim Aufrufen der onReceive()
Methode in einem separaten Prozess ausgeführt wird (es gibt jedoch auch andere Möglichkeiten, dies zu implementieren).
Ich habe festgestellt, dass Sie für die meisten gängigen Anwendungsfälle die meiste Zeit ohne Verwendung davonkommen können android:process=":remote"
.