[Android] 안드로이드 브로드캐스트(Broadcast) 송신/수신 방법

[Android] 안드로이드 브로드캐스트(Broadcast) 송신/수신 방법

■ 안드로이드 브로드캐스트 송신(보내기)

브로드캐스트를 보내고 싶은 앱에 아래 코드를 작성한다.

1. 원하는 위치에 브로드캐스트를 송신하는(보내는) 코드를 작성한다.

    // new Intent(“전송하고 싶은 내용”)을 쓰면 된다. 실제 패키지 구조와 상관없이 전송하고 싶은 내용을 적으면 된다.

    Intent intent = new Intent(com.bb.test.TEST_MESSEGE);

    // intent.setPackage(“실제 패키지 경로”)를 써야 한다. 여기에는 수신받을 앱의 실제 패키지 경로를 적어야 한다.
    intent.setPackage(“com.bb.testapp”);

   
    getApplicationContext().sendBroadcast(intent);

■ 안드로이드 브로드캐스트 수신(받기)

브로드캐스트를 받고 싶은 앱에 아래 코드를 작성한다.

1. BroadcastReceiver 타입의 변수를 선언한다.

    public BroadcastReceiver mBroadTestReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(com.bb.test.TEST_MESSEGE)) {
                // 브로드캐스트 수신받았을 때 실행할 내용
            }
        }
    };

2. onResume() 메서드 안에 registerReceiver 코드 추가하고, onPause() 메서드 안에 unregisterReceiver 코드 추가한다.

registerReceiver 를 onCreate() 메서드 안에 추가해도 되는데, 이 경우 unregisterReceiver 코드는 onDestroy() 메서드 안에 추가하면 된다.

    @Override
    protected void onResume() {
        super.onResume();

        
        IntentFilter intentFilter = new IntentFilter(com.bb.test.TEST_MESSEGE);
        activity.registerReceiver(mBroadTestReceiver, intentFilter);
    }

    @Override
    protected void onPause() {
        super.onPause();

       

        if (mBroadTestReceiver != null) {
            unregisterReceiver(mBroadTestReceiver);

        }
    }