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

간단한 문자열(예: 브로드캐스트 메시지)을 입력하고 단추를 누르면 해당 메시지(아래 그림에 밑줄)가 포함된 알림이 나타납니다. 이 알림은 메시지가 com.javacodegeeks.android.a_CUSTOM_INTENT에서 추출되는 MyBroadcastReceiver의 onReceiver() 함수에서 생성됩니다. 시스템 브로드캐스트 작업의 전체 목록은 BROADCAST_ACTION을 참조하십시오. 안드로이드 SDK의 TXT 파일. 각 브로드캐스트 작업에는 연관된 상수 필드가 있습니다. 예를 들어 상수 ACTION_AIRPLANE_MODE_CHANGED의 값은 android.intent.action.AIRPLANE_MODE입니다. 각 브로드캐스트 작업에 대한 설명서는 연결된 상수 필드에서 사용할 수 있습니다. 또는 이 정적 등록에 대해 Context.registerReceiver() 메서드를 통해 수신기를 동적으로 등록할 수도 있습니다. GitHub에서 로컬 브로드캐스트 수신기를 구현하는 참조 코드를 찾을 수 있습니다.

샘플 코드에서 현재 날짜를 브로드캐스트하는 IntentService를 만들었으며 동일한 응용 프로그램의 활동에 의해 수신됩니다. 위의 코드는 3.0 보다 이전의 Android 버전을 실행하는 장치에서 해당 브로드캐스트 수신기를 성공적으로 시작합니다. 그러나 최신 버전의 Android에서는 브로드캐스트 수신기에서 의도를 받지 않습니다. 이는 Android 3.0이 중지된 응용 프로그램의 구성 요소가 의도를 통해 시작되지 않도록 하는 실행 제어 보안 조치를 도입했기 때문입니다. 응용 프로그램이 방금 설치되었지만 이전에 시작되지 않았거나 장치에서 응용 프로그램 관리자를 사용하여 사용자가 수동으로 중지한 경우 응용 프로그램이 중지된 상태로 간주됩니다. 그러나 이 방법을 해결하려면 중지된 응용 프로그램의 구성 요소를 시작할 수 있도록 의도를 나타내기 위해 플래그를 전송하기 전에 의도에 플래그를 추가할 수 있습니다. 이 플래그는 FLAG_INCLUDE_STOPPED_PACKAGES이며 이전 코드 조각의 다음 적응에 설명된 대로 사용됩니다: 열기 src/com.javacodegeeks.android.android.broadcastreceiverstest/MyBroadcastReceiver.java 및 붙여넣기 다음 코드: 응용 프로그램 자체가 사용자 지정 의도를 생성하고 전송해야 하므로 활동 클래스 내에서 sendBroadcast() 메서드를 사용하여 이러한 의도를 만들고 보내야 합니다. sendStickyBroadcast(의도) 메서드를 사용하는 경우 의도는 고정되어 있으므로 브로드캐스트가 완료된 후에도 전송하는 의도가 유지됩니다. 이제 응용 프로그램을 실행할 준비가 되었습니다.

이렇게하려면, 마우스 오른쪽 버튼으로 우리의 프로젝트를 클릭 → 안드로이드 응용 프로그램으로 실행합니다. 앱이 로드된 경우 AVD가 표시됩니다. onReceiver() 메서드를 올바르지 않으시면 위의 onReceiver() 메서드로 변경하십시오. 안녕하세요 라이언, 당신은 정확합니다. 안드로이드 오레오는 배경 서비스와 방송 수신기 의 작동 방식을 변경했습니다. 같은 에 대한 자습서는 곧 나올 것입니다. 이 스레드에서 링크를 회신하여 놓치지 않도록하겠습니다. Android 시스템은 브로드캐스트 메시지(의도 또는 이벤트라고도 함)를 사용하여 정보를 응용 프로그램으로 전송합니다.

브로드캐스트는 Android 앱또는 가장 일반적으로 시스템 자체에서 전송할 수 있습니다. Intent 클래스가 브로드캐스트수신을 위해 정의하는 많은 시스템 생성 이벤트가 있으며, 그 중 일부는 Android 콘텐츠의 표준 브로드캐스트 작업에서 찾을 수 있습니다. 이 자습서에서는 사용자가 화면에서 제공한 데이터를 포함하는 사용자 지정 의도를 수신하는 BroadcastReceiver를 만드는 방법을 단계별로 보여 드리겠습니다. 이 자습서에서는 Windows 64비트 플랫폼에서 다음 도구를 사용합니다.