브로드캐스팅~
각각의 어플은 이 기능을 통해 자신의 상태를 공지하거나 특정 액션을 얻어올 수 있다.
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 |