Android 8.0(API 레벨 26) 백그라운드 실행 제한의 일환으로 API 레벨 26 이상을 타겟팅하는 앱은 암시적 브로드캐스트의 broadcast receiver를 manifest에 더 이상 등록할 수 없습니다. 하지만 현재 몇몇 브로드캐스트는 이러한 제한에서 제외됩니다. 앱이 타겟팅하는 API 레벨과 관계없이 앱은 다음 브로드캐스트의 리스너를 계속 등록할 수 있습니다.
ACTION_LOCKED_BOOT_COMPLETED
,ACTION_BOOT_COMPLETED
- 이러한 브로드캐스트는 처음 부팅할 때 한 번만 전송되는데 많은 앱이 작업, 알람 등을 예약하기 위해 이 브로드캐스트를 수신해야 하므로 제외됩니다.
ACTION_USER_INITIALIZE
,"android.intent.action.USER_ADDED"
,"android.intent.action.USER_REMOVED"
- 이러한 브로드캐스트는 특별 권한으로 보호되므로 대부분의 일반 앱은 어떤 방식으로든 이 브로드캐스트를 수신할 수 없습니다.
"android.intent.action.TIME_SET"
,ACTION_TIMEZONE_CHANGED
,ACTION_NEXT_ALARM_CLOCK_CHANGED
- 시간, 시간대 또는 알람이 변경될 때 시계 앱에서 알람을 업데이트하려면 이러한 브로드캐스트를 수신해야 할 수 있습니다.
ACTION_LOCALE_CHANGED
- 언어가 변경될 때만 전송되며 이런 상황은 자주 발생하지 않습니다. 앱은 언어가 변경될 때 데이터를 업데이트해야 할 수 있습니다.
ACTION_USB_ACCESSORY_ATTACHED
,ACTION_USB_ACCESSORY_DETACHED
,ACTION_USB_DEVICE_ATTACHED
,ACTION_USB_DEVICE_DETACHED
- 앱이 이러한 USB 관련 이벤트에 관해 알아야 한다면 현재 브로드캐스트에 등록하는 것만큼 좋은 다른 방법은 없습니다.
ACTION_CONNECTION_STATE_CHANGED
,ACTION_CONNECTION_STATE_CHANGED
,ACTION_ACL_CONNECTED
,ACTION_ACL_DISCONNECTED
- 앱이 이러한 블루투스 이벤트와 관련된 브로드캐스트를 수신하면 사용자 환경에 문제가 발생하지 않을 것입니다.
ACTION_CARRIER_CONFIG_CHANGED
,TelephonyIntents.ACTION_*_SUBSCRIPTION_CHANGED
,"TelephonyIntents.SECRET_CODE_ACTION"
,ACTION_PHONE_STATE_CHANGED
,ACTION_PHONE_ACCOUNT_REGISTERED
,ACTION_PHONE_ACCOUNT_UNREGISTERED
- OEM 전화 통신 앱은 이러한 브로드캐스트를 수신해야 할 수 있습니다.
LOGIN_ACCOUNTS_CHANGED_ACTION
- 일부 앱은 새 계정 및 변경된 계정과 관련된 예약 작업을 설정할 수 있도록 로그인 계정 변경사항에 관해 알아야 합니다.
ACTION_ACCOUNT_REMOVED
- 계정을 볼 수 있는 앱은 계정이 삭제될 때 이 브로드캐스트를 수신합니다. 계정 삭제가 앱이 조치를 취해야 하는 유일한 계정 변경사항이라면 앱은 지원이 중단된
LOGIN_ACCOUNTS_CHANGED_ACTION
대신 이 브로드캐스트를 사용하는 것이 좋습니다. ACTION_PACKAGE_DATA_CLEARED
- 사용자가 설정에서 데이터를 명시적으로 삭제할 때만 전송되므로 broadcast receiver는 사용자 환경에 크게 영향을 주지 않을 것입니다.
ACTION_PACKAGE_FULLY_REMOVED
일부 앱은 다른 패키지가 삭제될 때 저장된 데이터를 업데이트해야 할 수 있습니다. 이러한 앱에서는 브로드캐스트에 등록하는 것만큼 좋은 다른 방법이 없습니다.
참고: 다른 패키지 관련 브로드캐스트(예:
ACTION_PACKAGE_REPLACED
)는 새로운 제한에서 제외되지 않습니다. 이러한 브로드캐스트는 일반적으로 사용되므로 제외 시 성능에 영향을 줄 수 있습니다.ACTION_NEW_OUTGOING_CALL
전화를 거는 사용자에 응답하여 조치를 취하는 앱은 이 브로드캐스트를 수신해야 합니다.
ACTION_DEVICE_OWNER_CHANGED
이 브로드캐스트는 그다지 자주 전송되지는 않습니다. 일부 앱은 기기의 보안 상태가 변경된 사실을 알 수 있도록 브로드캐스트를 수신해야 합니다.
ACTION_EVENT_REMINDER
캘린더 제공자가 캘린더 앱에 일정 알림을 게시하기 위해 이 브로드캐스트를 전송합니다. 캘린더 제공자는 캘린더 앱이 무엇인지 알지 못하므로 이 브로드캐스트는 암시적이어야 합니다.
ACTION_MEDIA_MOUNTED
,ACTION_MEDIA_CHECKING
,ACTION_MEDIA_UNMOUNTED
,ACTION_MEDIA_EJECT
,ACTION_MEDIA_UNMOUNTABLE
,ACTION_MEDIA_REMOVED
,ACTION_MEDIA_BAD_REMOVAL
이러한 브로드캐스트는 사용자와 기기의 물리적 상호작용(저장소 볼륨 설치 또는 삭제) 결과로 또는 부팅 초기화의 일환(사용 가능한 볼륨이 마운트될 때)으로 전송되므로 흔히 발생하지는 않으며 일반적으로 사용자가 제어할 수 있습니다.
SMS_RECEIVED_ACTION
,WAP_PUSH_RECEIVED_ACTION
이러한 브로드캐스트는 SMS 수신자 앱이 사용합니다.