본문 바로가기

Study/Programming

안드로이드 방송 수신자 - 꼬로미

홧팅2홧팅2


안녕하세요 꼬로미입니다


안드로이드 프로그래밍 방송 수신자에 대한 포스팅입니다




방송 수신자(broadcast receiver)

                                                                                                  



방송수신자는 4가지 컴포넌트 중의 하나로서 BroadcastReceiver라는 클래스를 상속받아 작성하며

배터리부족, 네트워크의 끊어짐, SD카드의 미식별 등의 상황에서 통지하는 목적으로 사용됩니다

매니페스트파일에 선언하여야 하며, 어떤 방송을 받을 것인지 인텐트 필터를 통해 지정해야함


방송 수신자 작성 예

public class MyBroadcastReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent){

....

}

}

  • BroadcastReceiver 클래스를 상속받아 작성

  • onReceive() 메소드 재정의, 필요한 코드를 메소드 내 작성

  • onReceive의 매개변수 context : 방송 수신자가 실행되는 컨텍스트

  • onReceive의 매개변수 intent : 방송에 대한 자세한 내용을 전달 ( action에 방송종류, 필드에 추가정보가 저장)


매니페스트 파일 작성 예

<receiver android:name="MyBroadcastReceiver">

<intent-filter>

<action android:name="android.provider.Telephony.SMS_RECEIVER />

</intent-filter>

</receiver>

방송수신자를 매니페스트 파일에 정의



방송 수신자 동적 생성

  • 객체 생성후에 Context.registerReceiver()를 이용해 등록

  • 액티비티의 onResume() 메소드에서 생성, onPause()에서 해제하면서
    액티비티가 화면에 보이는 동안에만 방송수신이가능

  • onResume() - registerReceiver(receiver, filter);

  • onPause() - unregisterReceiver(receiver);





애플리케이션 방송하기

                                                                                                  



애플리케이션에서도 방송 수신자를 작성해 다른 애플리케이션으로 전송 가능 (애플리케이션간 통신수단 활용이 가능)


방송을 송신할때 사용하는 메소드

  • sendBroadcast(Intent intent)

  • sendBroadcast(Intent intent, String receiverPermission)

  • sendOrderedBroadcast(Intent intent, String receiverPermission) 
    intent : 방송할 액션
    receiverPermission : 지정된 권한을 가진 수신자에게만 방송을 보낼시 사용


방송의 종류
  • 일반 방송
    sendBroadcast() 사용
    비동기식 방식으로 전송하며, 이 방송 수신자는 정해지지 않은 순서로 방송을 수신함(이전 수신자를 알수 없음)
  • 정렬된 방송
    sendOrderedBroadcast() 메소드 사용
    한 번에 한개의 수신자로 차례대로 전달, 수신 순서는 인텐트 필터에서 android:priority 속성으로 설정




??메롱하트3

읽어주셔서 감사드립니다

뷰업 한번 클릭부탁드립니다^^*