2013-05-08 1 views
-1

Как добиться функциональности LocalBroadcastManager, используя обычные трансляции программным способом, не сохраняя ничего в манифесте. Моя цель - ограничить сферу вещания моим собственным приложением.Aletrnative solution для LocalBroadcastManager

+0

* Моя цель - ограничить область вещания моим собственным приложением * - Именно то, что делает 'LocalBroadcastManager'. * ... не сохраняя ничего в манифесте. * - Именно то, что делает «LocalBroadcastManager». – Luksprog

ответ

1

Чтобы транслировать Intent в контексте вашего приложения, LocalBroadcastManager - это самый безопасный способ сделать это. Однако, если вы хотите достичь аналогичной функциональности с помощью обычных широковещательных процедур, вы можете явно определить пакет, который должен прослушивать вашу трансляцию. Например:

Intent intent = new Intent("com.abc.my_action"); 
intent.setPackage("com.package.other"); //Set an explicit application package 
sendBroadcast(intent); 

Это ограничение для трансляций доступно в ICS и далее. Для получения дополнительной информации читайте this.

P.S. Я бы порекомендовал вам придерживаться LocalBroadcastManager, поскольку он транслирует намерения в контексте вашего приложения и считается самым безопасным.

+0

Нужно ли включать поддержку android-support-v4.jar для использования LocalBroadcastManager, хотя я нацелен на ICS (android-14) и далее? –

+1

Да, 'LocalBroadcastManager' доступен только через ** пакет android-support-v4 **, который является самым безопасным способом для общения внутри контекста вашего приложения. Но если вы не хотите использовать его в своем проекте сборки ICS, то в качестве альтернативы вы можете полагаться на менее безопасные способы, такие как 'intent.setPackage' и/или' intent.setComponent'. – waqaslam

+0

Я предполагаю, что Google работает над альтернативной реализацией LocalBroadcastManager в будущем, если они не включили этот api в свою последнюю ведущую ветку Git для KitKat. Я сомневаюсь, что они намерены заставить всех разработчиков снова вернуться к совместимости с Android-поддержкой-v4 ... –