안드로이드의 브로드캐스트는 컴포넌트 간 통신할 수 있는 대표적인 기능이다.
서포트 라이브러리 v4에는 같은 프로세스 안의 컴포넌트끼리 통신하는 로컬브로드캐스트(Local Broadcast)를 지원한다.
로컬브로드캐스트의 장점으로 3가지를 언급하고 있다.
- 브로드캐스트가 앱(프로세스) 밖으로 전달되지 않으므로, 우리 앱의 정보가 다른 앱으로 샐 염려가 없다.
- 다른 앱에서 우리 앱으로 로컬브로드캐스트를 보낼 수도 없다.
- 안드로이드 시스템을 통해 보내는 전역(Global) 브로드캐스트에 비해 효율적이다.
사용법도 간단한데, 먼저 등록할 때 쓰는 브로드캐스트 리시버(BroadcastReceiver)나 필터(IntentFilter) 클래스는 전역 브로드캐스트에 사용하는 것과 동일하다. Context에 등록하는 것이 아니라 LocalBroadcastManager의 인스턴스를 얻어와 등록하는 것만 다르다.
먼저, 등록은 이렇게 한다.
LocalBroadcastManager.getInstance( getContext() ).registerReceiver( myReceiver, myFilter );
브로드캐스트를 보내는 방법도 비슷하다.
LocalBroadcastManager.getInstance( getContext() ).sendBroadcast( new Intent( myAction ));
로그인 여부나 초기화 등 앱 전체에 영향을 미치면서 동시에 개인 정보이고, 인스턴스 간 구조적으로 전달하는 과정이 복잡하다면 로컬 브로드캐스트를 통해 앱 전체에 정보를 전달하는 것 방법을 이용해 보자.
참, 당연히 서포트라이브러리 v4를 import해야 한다.
참조