백그라운드에서 활동 시작에 관한 제한사항

Android 10 (API 수준 29) 이상에서는 앱을 시작할 수 있는 시점에 대한 제한 활동 만들 수 있습니다. 이러한 제한은 사용자 및 사용자의 불편을 최소화하는 데 도움이 됩니다. 사용자가 화면에 표시되는 내용을 더 잘 제어할 수 있게 합니다.

이 가이드에서는 만들 수 있습니다. 또한 제한이 적용되지 않는 특정 사례도 나열됩니다. 적용됩니다.

알림으로 대신 표시

대부분의 경우 백그라운드에 있는 앱은 시간에 민감한 알림 표시 활동을 직접 시작하지 않고 사용자에게 긴급한 정보를 제공할 수 있습니다. 이러한 알림에는 수신 전화나 활성화된 알람 처리가 포함됩니다. 있습니다.

이 알림 기반 경고 및 리마인더 시스템은 여러 가지 이점을 제공합니다. 사용자:

  • 기기를 사용할 때 사용자에게 알려주는 헤드업 알림이 표시됩니다. 있습니다. 사용자는 현재 컨텍스트를 유지하고 콘텐츠를 제공할 수 있습니다.
  • 시간에 민감한 알림은 사용자의 방해 금지 모드 규칙 대상 예를 들어 사용자는 특정 연락처에서 걸려온 전화만 허용하거나 전화를 걸 수 있습니다.
  • 기기의 화면이 꺼져 있으면 전체 화면 인텐트가 실행됩니다. 즉시 삭제할 수 있습니다
  • 사용자는 기기의 설정 화면에서 어떤 앱이 최근에 보낸 알림(특정 알림 채널의 알림 포함) 이 화면에서 사용자는 알림 기본 설정을 관리할 수 있습니다.

앱이 활동을 시작할 수 있는 경우

Android 10 이상에서 실행되는 앱은 다음 조건 중 하나 이상이 충족되어야 합니다.

<ph type="x-smartling-placeholder">
</ph>
  • 앱에 포그라운드의 활동과 같은 보이는 창이 있습니다.
  • 앱의 백 스택 및 포그라운드 작업이라는 것을 배웠습니다.
  • 앱의 기존 작업 백 스택에 있는 최근 화면.

  • 앱에 아주 최근에 시작된 활동이 있습니다.

  • 앱이 finish()을(를) 호출한 날짜: 아주 최근에 있었던 활동이었습니다. 이는 앱에 액티비티의 포그라운드에서 실행되는 활동이 있는 경우 finish()가 호출되었을 때의 포그라운드 작업

  • 앱에 시스템에서 바인드한 다음 서비스 중 하나가 있습니다. 이러한 UI를 실행해야 할 수 있습니다.

  • 앱에 다른 가시적 앱에 의해 바인드된 서비스가 있습니다. 앱 백그라운드에서 앱이 계속 보이는 상태에서 시작됩니다.

    <ph type="x-smartling-placeholder">
    </ph>
  • 앱에서 알림을 수신함 시스템에서 PendingIntent를 삭제합니다. 포함 서비스 및 broadcast receiver의 대기 중인 인텐트의 경우 앱이 활동을 시작할 수 있습니다.

  • 앱이 다른 공개 API에서 전송된 PendingIntent를 수신합니다. 있습니다.

  • 앱이 시스템 브로드캐스트를 수신하며 여기서 앱이 있습니다. 예를 들면 ACTION_NEW_OUTGOING_CALLSECRET_CODE_ACTION. 브로드캐스트가 전송되고 몇 초 후에 앱이 Activity를 시작할 수 있습니다.

  • 앱이 다음을 통해 호환 하드웨어 기기와 연결됩니다. CompanionDeviceManager API에 액세스할 수 있습니다. 이 API를 사용하면 앱이 사용자가 페어링된 기기에서 수행하는 작업을 수행합니다.

  • 앱이 다음에서 실행되는 기기 정책 컨트롤러입니다. 기기 소유자 모드로 사용할 수 없습니다. 사용 사례의 예는 다음과 같습니다. 완전 관리형 엔터프라이즈 기기 디지털 기기와 같은 사이니지, 키오스크 등 다양한 기기를 제공합니다

  • 사용자가 앱에 SYSTEM_ALERT_WINDOW 권한을 부여했습니다.

PendingIntent에서 활동을 시작하려면 선택 필요

목록에 있는 Android 14부터 명시적 API를 사용하면 을 사용하여 활동 시작에 대한 앱 권한 부여를 선택하거나 선택 해제할 수 있습니다.

Android 15 이상을 타겟팅하는 앱은 기본적으로 더 이상 암시적으로 암시적으로 사용되지 않도록 설정됩니다. PendingIntents에 백그라운드 활동 실행 (BAL) 권한을 부여합니다. 있습니다. 명시적인 선택이 필요하며, 이를 위해서는 다음과 같은 옵션이 있습니다. 앱에서 PendingIntents를 전송하는지, 생성하는지에 따라 다릅니다.

<ph type="x-smartling-placeholder">
</ph> 대기 중인 인텐트 테이블
그림 1: 백그라운드 활동 실행을 위한 결정 흐름

PendingIntent 발신자

PendingIntent를 시작하려는 Android 14 이상을 타겟팅하는 앱은 다음을 충족해야 합니다.

  • 나열된 조건
  • 이러한 예외에 따라 백그라운드 활동이 실행되도록 선택합니다.

이 선택은 앱 개발자가 앱이 다음 조건을 충족하는 경우에만 이루어져야 합니다. 활동을 시작합니다.

선택하려면 앱에서 다음과 같은 ActivityOptions 번들을 전달해야 합니다. setPendingIntentBackgroundActivityStartMode(ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED) PendingIntent.send() 또는 유사한 메서드에 전달할 수 있습니다.

PendingIntent 생성자

이제 PendingIntent를 만드는 Android 15 이상을 타겟팅하는 앱은 다음을 충족해야 합니다. 백그라운드 활동 실행을 원하는 경우 이를 허용하도록 명시적으로 선택합니다. PendingIntents나열된 조건에서 시작할 수 있습니다.

대부분의 경우 PendingIntent를 시작하는 앱을 선택해야 합니다. 하지만 만드는 앱에서 다음 권한을 부여해야 하는 경우 다음을 참고하세요.

  • PendingIntent는 만드는 앱이 표시되면 언제든지 시작할 수 있습니다.
  • 만드는 앱에 특수 항목이 있으면 언제든지 PendingIntent를 시작할 수 있습니다. 액세스할 수 있습니다

선택하려면 앱에서 다음과 같은 ActivityOptions 번들을 전달해야 합니다. setPendingIntentCreatorBackgroundActivityStartMode (ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)(으)로 PendingIntent.getActivity() 또는 유사한 메서드

자세한 내용은 관련 참조 문서를 확인하세요.