Определяя ваш приемник с помощью android:process=":remote"
, вы в основном запускаете свой приемник в другом процессе (= ВМ). Для типичных сценариев использования вам не нужно запускать это в другом процессе, и все, что вы хотите сделать, вероятно, может нормально работать локально (в вашем процессе APK).
Недостаток использования android:process=":remote"
заключается в том, что для его запуска требуются дополнительные ресурсы (в данном случае отдельный процесс). При этом вы в основном имеете дело с 2 виртуальными машинами, а с некоторыми шаблонами, например синглетами, статические поля больше не могут использоваться совместно вашим приложением и удаленной службой.
Преимущество использования android:process=":remote"
заключается в том, что в некоторых случаях может быть полезно запустить службу, которая будет продолжать работать (в своем собственном процессе) после закрытия приложения или если вы хотите удаленно клиенты, чтобы иметь возможность привязать к вашему сервису. Получатель широковещательной рассылки не будет блокировать основной поток ваших приложений при запуске в отдельном процессе после вызова метода onReceive()
(однако есть и другие способы реализации этого).
Я обнаружил, что в большинстве случаев для большинства случаев вы можете уйти, не используя android:process=":remote"
.