Life Life Life
BroadcastReceiver 편하게 관리하기 본문
안드로이드 Reeceiver 등록 및 해체할때마다 신경쓰인다.
등록되어져 있는 상태에서 해체하면 상관없는데 미등록상태에서 해체하면 오류가
발생하며 따로 등록되어져 있는지 확인하는 API가 존재하지 않아 tyr ~ catch로
처리하였는데 관리 Manager을 만들어 처리하였어요.
private ReceiverManager(Context context)
{
this.context = context;
}
public static synchronized ReceiverManager init(Context context)
{
if (ref == null)
ref = new ReceiverManager(context);
return ref;
}
public void registerReceiver(BroadcastReceiver receiver, IntentFilter intentFilter)
{
if(receivers.contains(receiver))
{
return;
}
receivers.add(receiver);
context.registerReceiver(receiver, intentFilter);
}
private boolean isReceiverRegistered(BroadcastReceiver receiver)
{
boolean registered = receivers.contains(receiver);
return registered;
}
public void unregisterReceiver(BroadcastReceiver receiver)
{
if (isReceiverRegistered(receiver))
{
receivers.remove(receiver);
context.unregisterReceiver(receiver);
}
}
'개발 > 안드로이드' 카테고리의 다른 글
TextView에 폰트 적용하기 (0) | 2014.04.04 |
---|---|
이미지파일 회전 정보 조회 및 회전 (0) | 2014.04.02 |
안드로이드 최상위 Toast 만들기 (0) | 2014.04.02 |
Dialog 및 ProgressDialog 하드웨어 Key 막기 (0) | 2014.04.02 |
GPS활성하게끔 설정화면 이동 (0) | 2014.04.02 |