Dev/Android

BroadcastReceiver - LocalBroadcastReceiver / 브로드캐스트

healthyryu 2017. 10. 26. 08:50

애플리케이션 프로세스 내에서만 브로드캐스트를 주고받고 싶다면

범용적인 Context.sendBroadcast() 대신 LocalBroadcastManager 를 사용해 볼 수 있다.


장점 :

1, 프로세스 간 관리가 필요 없다

2. 브로드캐스트와 관련한 보안 문제를 신경쓰지 않아도 된다.


** Broadcast 설정 **

private BroadcastReceiver mLocalReceiver;

private static final String LOCAL_BRODCAST_ACTION = "localBoradcastReceiver";


@Override

protected void onResume() {

LocalBoradcastManager lbm = LocalBroadcastManager.getInstance(this);

IntentFilter if = new IntentFilter(LOCAL_BRODCAST_ACTION);

mLocalReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

// 로컬 브로드캐스트 처리

}

};

lbm.registerReceiver(mLocalReceiver, if);

}


@Override

protected void onPause() {

super.onPause();

LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);

lbm.unregisterReceiver(mLocalReceiver);

}


** Broadcast 업데이트 **

public void sendLocalBroadcast(Intent broadcastIntent) {

LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);

lbm.sendBroadcast(broadcastIntent);

}

반응형