장삼의 착한코딩

[Android] BroadCast Receiver 본문

Android

[Android] BroadCast Receiver

wkdgusdn3 2015. 12. 16. 01:02


안드로이드에는 Activity, Service, BroadCast Receiver, Content Provider 4가지의 컴포넌트가 있다.

안드로이드는 문자가 왔을 때, 전화가 왔을 때, 핸드폰이 켜졌을 때 등 특정 동작이 발생 했을 때 broadcast를 발생시킨다. 이런 BroadCast를 받는 동작을 하는 컴포넌트가 BroadCast Receiver이다.

BroadCast Receiver를 위해서는 총 3가지의 코드가 필요하다

1. receiver 등록

 BroadCast가 발생했을 때, BroadCast를 받을 Receiver를 등록해야한다. manifest에 아래의 코드를 작성한다.

<receiver
android:name=".Receiver">
<intent-filter>
<action android:name="com.wkdgusdn3.broadcastreceiver.broadcast" />
</intent-filter>
</receiver>


2. receiver 작성
 BroadCast가 발생했을 때 동작시킬 Receiver를 작성한다. BroadcastReceiver를 상속하여 onReceiver 메소드를 구현한다.
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "브로드 캐스트를 받았습니다.", Toast.LENGTH_LONG).show();
}
}

BroadCastReceiver가 발생하면 동작할 Receiver를 구현해야 한다. BroadCast가 발생하면 manifest에서 등록한 Receiver.java의 onReceiver 메소드가 실행되게 된다. BroadCast를 받은 것을 확인하기 위해 Toast를 띄우도록 설정하였다.

3. sendBroadcast 작성

 Test를 하기 위하여 BroadCast를 발생시키는 코드가 필요하다. sendBroadcast를 통해 BroadCast를 발생시킬 수 있다. sendBroadcast안에는 Intent를 넣는다. Intent는 Recever에서 작성한 구별할 수 있는 문자를 넣는다.

버튼을 눌렀을 때 broadcast를 발생시키도록 설정하였다.

Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendBroadcast(new Intent("com.wkdgusdn3.broadcastreceiver.broadcast"));
}
});


아래의 캡쳐 화면을 통하여 button을 눌렀을 때 Toast가 발생한 것을 확인 할 수 있다.









































코드
https://github.com/wkdgusdn3/BroadCastReceiverExample









































Comments