안드로이드 브로드캐스트 리시버

안드로이드에서 브로드캐스트 리시버(Broadcast Receiver)는 앱 간의 통신을 가능하게 하는 중요한 컴포넌트입니다. 브로드캐스트 리시버는 안드로이드 시스템에서 발생하는 다양한 이벤트(브로드캐스트 메시지)를 수신하여 처리할 수 있습니다. 이를 통해 앱은 시스템 이벤트에 반응하거나, 다른 앱으로부터 데이터를 받아올 수 있습니다.

브로드캐스트 리시버 등록하기

브로드캐스트 리시버를 사용하기 위해선 Manifest 파일에 등록해야 합니다.

<receiver
    android:name=".MyBroadcastReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MY_ACTION" />
    </intent-filter>
</receiver>

위의 코드에서는 MyBroadcastReceiver라는 이름의 리시버를 등록하고 있습니다. android.intent.action.MY_ACTION 이라는 액션에 대해서만 이 리시버가 작동하도록 설정하였습니다.

리시버 클래스 구현하기

브로드캐스트 리시버를 사용하기 위해서는 새로운 클래스를 작성하여 BroadcastReceiver를 상속받아야 합니다.

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 리시버에서 처리할 로직 작성
        String action = intent.getAction();
        if (action.equals("android.intent.action.MY_ACTION")) {
            // 액션에 따른 처리 로직 작성
        }
    }
}

위의 코드에서 onReceive 메소드 내에서는 수신한 브로드캐스트 메시지에 대한 처리 로직을 작성합니다. intent.getAction() 메소드를 통해 수신한 액션을 확인하고, 원하는 액션에 대해서만 로직을 실행하도록 분기처리를 합니다.

브로드캐스트 메시지 보내기

브로드캐스트 메시지를 보내기 위해선 BroadcastManager를 사용합니다.

Intent intent = new Intent("android.intent.action.MY_ACTION");
// 데이터를 추가로 전달할 경우
intent.putExtra("key", "value");

BroadcastManager.getInstance(context).sendBroadcast(intent);

위의 코드에서는 android.intent.action.MY_ACTION 액션으로 브로드캐스트 메시지를 생성하고, 필요한 경우 데이터를 추가로 전달하는 예시입니다. BroadcastManager.getInstance(context).sendBroadcast(intent)를 통해 브로드캐스트 메시지를 보냅니다.

결론

안드로이드 브로드캐스트 리시버를 사용하면 앱 간의 통신을 효과적으로 수행할 수 있습니다. 리시버를 등록하고, 이벤트를 처리할 수 있는 클래스를 구현하여 사용하는 방법을 배웠습니다. 브로드캐스트 리시버를 적절하게 활용하여 안드로이드 앱의 기능을 더욱 향상시킬 수 있습니다.

#안드로이드 #브로드캐스트리시버