2013-05-08 4 views
-1

Manifest에 아무 것도 보관하지 않고 프로그래밍 방식으로 일반 방송을 사용하여 LocalBroadcastManager 기능을 구현하는 방법. 내 목표는 내 방송 범위를 내 응용 프로그램으로 제한하는 것입니다.LocalBroadcastManager 용 Aletrnative 솔루션

+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

ICS (android-14) 이후를 목표로하고 있지만 LocalBroadcastManager를 사용하려면 android-support-v4.jar를 포함해야합니까? –

+1

예, 'LocalBroadcastManager'는 ** android-support-v4 ** 패키지를 통해서만 사용할 수 있습니다.이 패키지는 애플리케이션의 컨텍스트 내에서 통신하는 가장 안전한 방법입니다. 그러나 ICS 빌드 프로젝트에서이 패키지를 사용하고 싶지 않다면'intent.setPackage' 및/또는'intent.setComponent'와 같은 덜 안전한 방법에 의존 할 수 있습니다. – waqaslam

+0

KitKat 용 Git의 최신 마스터 브랜치에이 API를 포함시키지 않으면 앞으로 Google이 LocalBroadcastManager의 대안 구현에 참여하고 있다고 생각합니다. 그들의 의도가 모든 개발자에게 안드로이드 지원 v4와의 하위 호환성을 다시 강요하는 것입니다. –