본문 바로가기

프로그래밍/Android

Broadcast/BroadcastReceiver

브로드캐스팅~

 

각각의 어플은 이 기능을 통해 자신의 상태를 공지하거나 특정 액션을 얻어올 수 있다.

 

1. 전송할 액션 설정 : String 으로 패키지명을 포함해 임의로 지정한다.

public static final String MY_ACTION = "kr.package.action.MY_ACTION"

 

2. 전송할 인텐트를 정의한다.(어느녀석이 받아서 처리할지 모르므로 묵시적 호출)

Intent intent = new Intent( MY_ACTION , Uri.parse(""));

추가정보도 필요하면 넣고~

intent.putExtra("value", value );

 

3. 브로드캐스팅으로 전송

sendBroadcast( intent );

 

 

 

 

* 브로드캐스트 리시버

BroadcastReceiver 를 상속받아 onReceive 메쏘드를 오버라이드 해주면 끝~

public class MyReceiver extends BroadcastReceiver {

 

}

 

* 리시버의 intent-filter 설정

Intent 포스트에서 언급한바와 같이 묵시적 intent 설정을 사용하는경우

해당 액션,카테고리,데이터를 수신하기 위한 필터를 설정해야 한다.

방법은 manifest에 추가하거나 코드에서 동적으로 선언할 수 있다.

 

<intent-filter>

<action android:name="kr.package.action.MY_ACTION"/>

<category ... />

<data ... />

</intent-filter>

 

또는

 

IntentFilter filter = new IntentFilter( MY_ACTION );

MyReceiver receiver = new MyReceiver();

registerReceiver( receiver, filter );

 

* 리시버 해제

unregisterReceiver();

 

 

 

 

* 주의

onReceiver는 다른 서비서나 액티비티에서도 동일하게 이벤트를 수신하는 녀석들이라

특정시간동안 처리를 지연시켜서는 안된다~ 만약 5초이상 처리가 이루어지는 경우

해당 어플리케이션이 응답이 없다고 생각해 종료 시킬 수 있다.

'프로그래밍 > Android' 카테고리의 다른 글

버튼 상태에 따른 배경변경  (0) 2009.11.22
에니메이션 처리하기  (0) 2009.11.19
투명한 레이아웃 만들기  (0) 2009.11.18
메시지 핸들러 사용하기  (0) 2009.11.16
리시버를 통한 sms데이터 가져오기  (0) 2009.11.16
AlarmManger 사용  (0) 2009.11.10
AsyncTask 이해하기  (0) 2009.11.09
테마설정하기  (0) 2009.11.09
타이틀바 없애기  (0) 2009.11.09
상태바 알림 처리  (0) 2009.11.09