애플리케이션 프로세스 내에서만 브로드캐스트를 주고받고 싶다면
범용적인 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);
}
'Dev > Android' 카테고리의 다른 글
Bluetooth 연결과 Characteristic 전송 속도 (0) | 2017.11.06 |
---|---|
데이터 저장 및 직렬화 (0) | 2017.10.28 |
Android BLE(Bluetooth Low Energy) 참고 (0) | 2017.10.11 |
[Android] Glide 활용해서 TextView 에 이미지 넣기 (2) | 2017.09.21 |
안드로이드 Context 개념 - 링크 (0) | 2017.08.18 |