활동

Activity에 기반하여 빌드된 구성 가능한 API에 액세스합니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 4월 3일 1.8.2 1.9.0-rc01 - -

종속 항목 선언

Activity의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    def activity_version = "1.8.2"

    // Java language implementation
    implementation "androidx.activity:activity:$activity_version"
    // Kotlin
    implementation "androidx.activity:activity-ktx:$activity_version"
}

Kotlin

dependencies {
    val activity_version = "1.8.2"

    // Java language implementation
    implementation("androidx.activity:activity:$activity_version")
    // Kotlin
    implementation("androidx.activity:activity-ktx:$activity_version")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.9

버전 1.9.0-rc01

2024년 4월 3일

androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01, androidx.activity:activity-ktx:1.9.0-rc01이 출시되었습니다. 버전 1.9.0-rc01에 포함된 커밋을 확인하세요.

종속 항목 업데이트

버전 1.9.0-beta01

2024년 3월 20일

androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01, androidx.activity:activity-ktx:1.9.0-beta01이 출시되었습니다. 버전 1.9.0-beta01에 포함된 커밋을 확인하세요.

버그 수정

  • 활동 생성 과정에서 OnBackPressedDispatcher를 호출하여 발생하는 Activity 1.9.0-alpha02에 도입된 활동 시작 성능 저하 문제를 수정했습니다. 추가했습니다. (Ie75e3)

버전 1.9.0-alpha03

2024년 2월 7일

androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03, androidx.activity:activity-ktx:1.9.0-alpha03이 출시되었습니다. 버전 1.9.0-alpha03에 포함된 커밋을 확인하세요.

린트 경고

버그 수정

  • 이미 실행 중인 뒤로 탐색 예측 동작이 시작된 후 시스템에서 뒤로 이벤트가 전송되면 현재 실행 중인 뒤로 탐색 예측 동작이 취소되고 새로운 뒤로 이벤트가 인계되어 새로운 뒤로 탐색 예측 동작이 시작됩니다. 추가했습니다. (I3482e)
  • 백그라운드 스레드에서 처음으로 ComponentActivity에서 onBackPressedDispatcher에 액세스할 때 발생하는 비정상 종료 문제가 수정되었습니다. 이제 모든 스레드에서 onBackPressedDispatcher에 안전하게 액세스할 수 있습니다. 추가했습니다. (I79955)

버전 1.9.0-alpha02

2024년 1월 24일

androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02, androidx.activity:activity-ktx:1.9.0-alpha02이 출시되었습니다. 버전 1.9.0-alpha02에 포함된 커밋을 확인하세요.

Kotlin 변환

  • ActivityResultRegistry가 Kotlin으로 다시 작성되었습니다. 이렇게 하면 register에 전달된 계약의 제네릭의 null 허용 여부가 반환되는 ActivityResultLauncher에 올바르게 전달됩니다. 추가했습니다. (I121f0)
  • ActivityResult가 Kotlin으로 다시 작성되었습니다. resultCodedata 필드로의 디스트럭처링을 지원하는 ActivityResult Kotlin 확장 프로그램이 activity-ktx에서 activity로 이동했습니다. 추가했습니다. (I0565a)
  • ComponentActivitytrackPipAnimationHintViewby viewModels() Kotlin 확장 프로그램이 activity-ktx에서 activity로 이동했습니다. 이제 activity-ktx 아티팩트가 완전히 비어 있습니다. 추가했습니다. (I0a444)

버그 수정

  • 이제 enableEdgeToEdge API가 디스플레이 컷아웃 주위에 그립니다. 추가했습니다. (a3644b, b/311173461)
  • Activity 1.8.2에서: 사진 선택 도구 활동 계약의 ACTION_SYSTEM_FALLBACK_PICK_IMAGES에 전달되는 추가 항목이 "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" 키와 함께 추가 항목을 사용하는 대신 EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX 키를 올바르게 전달하도록 수정되었습니다. 최상의 호환성을 보장하기 위해 두 추가 항목을 모두 지원하는 시스템 대체 사진 선택 도구를 구현하는 OEM의 경우 적극 권장됩니다. 추가했습니다. (I96a00)

버전 1.9.0-alpha01

2023년 11월 29일

androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01, androidx.activity:activity-ktx:1.9.0-alpha01이 출시되었습니다. 버전 1.9.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 ComponentActivity는 구성요소가 onUserLeaveHint 이벤트의 콜백을 허용하도록 OnUserLeaveHintProvider를 구현합니다. 추가했습니다. (I54892)

API 변경사항

  • ComponentActivity가 Kotlin으로 다시 작성되었습니다. 추가했습니다. (I14f31)
  • ActivityResultCaller가 Kotlin으로 다시 작성되었습니다. 추가했습니다. (Ib02e4)
  • ActivityResultLauncher가 Kotlin으로 다시 작성되었습니다. 이 변환의 일부로 getContract 메서드는 이제 추상 Kotlin 속성이 됩니다. 바이너리 호환 변경사항이지만 ActivityResultLauncher 구현이 Kotlin으로 작성된 경우 소스를 손상시킵니다. 추가했습니다. (Id4615)
  • 이제 PickVisualMediaRequest의 최소 API 수준 19가 PickVisualMedia 활동 결과 계약과 동일합니다. 추가했습니다. (Id6e21)

종속 항목 업데이트

버전 1.8

버전 1.8.2

2023년 12월 13일

androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2, androidx.activity:activity-ktx:1.8.2이 출시되었습니다. 버전 1.8.2에 포함된 커밋을 확인하세요.

버그 수정

  • 사진 선택 도구 활동 계약의 ACTION_SYSTEM_FALLBACK_PICK_IMAGES에 전달되는 추가 항목이 "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" 키와 함께 추가 항목을 사용하는 대신 EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX 키를 올바르게 전달하도록 수정되었습니다. 최상의 호환성을 보장하기 위해 두 추가 항목을 모두 지원하는 시스템 대체 사진 선택 도구를 구현하는 OEM의 경우 적극 권장됩니다. 추가했습니다. (I96a00)

버전 1.8.1

2023년 11월 15일

androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1, androidx.activity:activity-ktx:1.8.1이 출시되었습니다. 버전 1.8.1에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 뒤로 동작이 처리되는 동안 새 OnBackPressedCallback가 추가된 후에도 OnBackPressedDispatcher가 올바른 OnBackPressedCallback에 계속 전달됩니다. 추가했습니다. (Id0ff6)

버전 1.8.0

2023년 10월 4일

androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0, androidx.activity:activity-ktx:1.8.0이 출시되었습니다. 버전 1.8.0에 포함된 커밋을 확인하세요.

1.7.0 이후 중요 변경사항

  • 뒤로 탐색 예측: 이제 OnBackPressedCallback에서 뒤로 동작이 커밋되는 경우에 관한 이전 handleOnBackPressed() 콜백 외에 뒤로 동작 시작, 동작 전체 진행 상황, 취소 중인 뒤로 동작을 처리하기 위한 새로운 뒤로 탐색 예측 콜백을 제공합니다. Activity Compose에서 뒤로 탐색 예측 동작 이벤트를 처리하는 PredictiveBackHandler 컴포저블도 함께 제공됩니다. 개발자가 제공하는 정지 람다에서 수집해야 하는 BackEventCompat 객체의 Flow를 제공합니다.
  PredictiveBackHandler { progress: Flow<BackEventCompat> ->
    // code for gesture back started
    try {
      progress.collect { backEvent ->
      // code for progress
    }
    // code for completion
    } catch (e: CancellationException) {
      // code for cancellation
    }
  }

이제 ComponentActivity.onBackPressed()를 지원 중단하고 뒤로 처리를 위한 API로 대체했습니다. 이제 개발자는 이 메서드를 재정의하는 대신 OnBackPressedDispatcher를 활용해야 합니다.

  • EdgeToEdge - ComponentActivity.enableEdgeToEdge()가 추가되어 이전 버전과 호환되는 방식으로 더 넓은 화면 디스플레이를 쉽게 설정할 수 있습니다.

버전 1.8.0-rc01

2023년 9월 20일

androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01, androidx.activity:activity-ktx:1.8.0-rc01이 출시되었습니다. 버전 1.8.0-rc01에 포함된 커밋을 확인하세요.

버전 1.8.0-beta01

2023년 9월 6일

androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01, androidx.activity:activity-ktx:1.8.0-beta01이 출시되었습니다. 버전 1.8.0-beta01에 포함된 커밋을 확인하세요.

문서 개선

  • BackEventCompat의 문서가 개선되었습니다. (aosp/2722254 참고)

버전 1.8.0-alpha07

2023년 8월 23일

androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07, androidx.activity:activity-ktx:1.8.0-alpha07이 출시되었습니다. 버전 1.8.0-alpha07에 포함된 커밋을 확인하세요.

새로운 기능

  • Activity Compose에서 뒤로 탐색 예측 동작 이벤트를 처리하는 새로운 PredictiveBackHandler 컴포저블을 추가했습니다. 개발자가 제공하는 정지 람다에서 수집해야 하는 BackEventCompat 객체의 Flow를 제공합니다.

    PredictiveBackHandler { progress: Flow<BackEventCompat> ->
      // code for gesture back started
      try {
        progress.collect { backEvent ->
        // code for progress
      }
      // code for completion
      } catch (e: CancellationException) {
        // code for cancellation
      }
    }
    

    또한 Flow에서 collect()를 호출하도록 린트 규칙을 통해 컴파일 시간 경고가 표시됩니다. 추가했습니다. (Id2773, b/294884345)

  • 이제 ComponentActivityonBackPressedDispatcher가 필요할 때만 생성되도록 지연 초기화됩니다. 추가했습니다. (I0bf8e)

버그 수정

  • ComponentActivityonBackPressed() 콜백을 받고 활동이 이미 DESTROYED 상태일 때 Android 13에서 더 이상 NPE를 표시하지 않습니다. 추가했습니다. (Idb055, b/291869278)
  • 실험용 isAtLeastU() API 사용을 삭제했습니다. (Ie9117, b/289269026)

버전 1.8.0-alpha06

2023년 6월 21일

androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06, androidx.activity:activity-ktx:1.8.0-alpha06이 출시되었습니다. 버전 1.8.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 OnBackPressedDispatcher가 뒤로 탐색 예측 동작 중에 삭제되는 콜백을 올바르게 취소합니다. 추가했습니다. (I3f90f)

API 변경사항

  • SystemBarStyle.autoenableEdgeToEdge API에 전달할 때 이제 detectDarkMode 람다 매개변수를 재정의하여 야간 모드 감지를 위한 맞춤 로직을 제공할 수 있습니다. (aosp/2546393b/278263793 참고)

버전 1.8.0-alpha05

2023년 6월 7일

androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05, androidx.activity:activity-ktx:1.8.0-alpha05이 출시되었습니다. 이 버전은 내부 브랜치에서 개발되었습니다.

API 변경사항

  • 이제 Activity가 프레임워크 BackEvent 클래스에서 분리된 BackEvent의 이전 버전과 호환되는 버전의 역할을 하는 BackEventCompat 클래스를 제공합니다.
  • 브레이킹 체인지: 이제 OnBackPressedCallbackhandleOnBackStartedhandleOnBackProgressed 메서드가 프레임워크 android.window.BackEvent 클래스가 아닌 androidx.activity.BackEventCompat 인스턴스를 받습니다. OnBackPressedDispatcher에서 상응하는 @VisibleForTesting API도 업데이트되었습니다.
  • 이제 OnBackPressedDispatcher의 생성자는 사용 설정된 콜백 수가 0에서 0이 아닌 값으로 또는 그 반대로 변경될 때마다 디스패처의 소유자가 콜백을 수신할 수 있는 선택적 Consumer<Boolean> 인스턴스를 사용합니다.

버그 수정

  • Activity 1.7.2에서: report가 호출되기 전에 화면에서 벗어날 때 ReportDrawn가 비정상 종료되는 문제를 수정했습니다. 추가했습니다. (Ic46f1, b/260506820)

버전 1.8.0-alpha04

2023년 5월 10일

androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04, androidx.activity:activity-ktx:1.8.0-alpha04이 출시되었습니다. 이 버전은 내부 브랜치에서 출시되었습니다.

버그 수정

  • Activity 1.7.1부터: ActivityScenario와 함께 ComponentActivity를 사용할 때 ReportFullyDrawExecuter가 더 이상 누출되지 않습니다. 추가했습니다. (Id2ff2, b/277434271)

버전 1.8.0-alpha03

2023년 4월 12일

androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03, androidx.activity:activity-ktx:1.8.0-alpha03이 출시되었습니다. 이 버전은 내부 브랜치에서 출시되었습니다.

새로운 기능

  • 이전 버전과 호환되는 방식으로 더 넓은 화면 디스플레이를 쉽게 설정할 수 있도록 ComponentActivity.setUpEdgeToEdge()를 추가했습니다.

API 변경사항

  • 이제 ComponentActivity.onBackPressed()를 지원 중단하고 뒤로 처리를 위한 API로 대체했습니다. 이제 개발자는 이 메서드를 재정의하는 대신 OnBackPressedDispatcher를 활용해야 합니다. 추가했습니다. (Ibce2f, b/271596918)
  • 이제 ComponentDialogComponentActivity에는 콘텐츠 뷰를 설정하기 전에 모든 뷰 트리 소유자를 초기화하는 데 사용되는 공개 API initViewTreeOwners()가 포함되어 있습니다. 추가했습니다. (Ibdce0, b/261314581)

버그 수정

  • 프래그먼트가 MenuHosts를 잘못 무효화하고 활동의 다른 메뉴에 예기치 않은 동작이 발생하는 문제를 수정했습니다. 추가했습니다. (I9404e, b/244336571)

기타 변경사항

  • 이제 ActivityResultRegister는 자바 대신 Kotlin Random를 사용합니다. 추가했습니다. (I4d98f, b/272096025)

버전 1.8.0-alpha02

2023년 3월 8일

androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02, androidx.activity:activity-ktx:1.8.0-alpha02이 출시되었습니다. 내부 브랜치에서 개발되었습니다.

종속 항목 업데이트

버전 1.8.0-alpha01

2023년 2월 8일

androidx.activity:activity:1.8.0-alpha01, androidx.activity:activity-compose:1.8.0-alpha01, androidx.activity:activity-ktx:1.8.0-alpha01이 출시되었습니다. 내부 브랜치에서 빌드되었습니다.

새로운 기능

  • 이제 OnBackPressedCallback 클래스에는 뒤로 동작이 커밋되는 경우에 관한 이전 handleOnBackPressed() 콜백 외에도, 새로운 뒤로 탐색 예측 프로세스 콜백이 포함됩니다. 이 콜백은 뒤로 동작 시작, 동작 전체의 진행 상황, 취소되는 뒤로 동작에 관한 처리를 담당합니다.

버전 1.7

버전 1.7.2

2023년 5월 24일

androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2, androidx.activity:activity-ktx:1.7.2이 출시되었습니다. 버전 1.7.2에 포함된 커밋을 확인하세요.

버그 수정

  • report가 호출되기 전에 화면에서 나갈 때 ReportDrawn가 비정상 종료되는 문제를 수정했습니다. 추가했습니다. (Ic46f1, b/260506820)

버전 1.7.1

2023년 4월 19일

androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1, androidx.activity:activity-ktx:1.7.1이 출시되었습니다. 버전 1.7.1에 포함된 커밋을 확인하세요.

버그 수정

  • ActivityScenario와 함께 ComponentActivity를 사용할 때 ReportFullyDrawExecuter가 더 이상 누출되지 않습니다. 추가했습니다. (Id2ff2, b/277434271)

버전 1.7.0

2023년 3월 22일

androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0, androidx.activity:activity-ktx:1.7.0이 출시되었습니다. 버전 1.7.0에 포함된 커밋을 확인하세요.

1.6.0 이후 중요 변경사항

  • 대체 작업을 구현하여 OEM 및 시스템 앱(예: Google Play 서비스)에서 일관된 사진 선택 도구 환경을 제공할 수 있도록 PickVisualMediaPickMultipleVisualMedia의 사진 선택 도구 활동 계약이 MediaStore.ACTION_PICK_IMAGES를 사용할 수 없는 경우에 대한 추가 대체를 포함하도록 업데이트되었습니다. 사진 선택 도구는 모든 API 19 이상 기기를 계속 지원하기 위해 Intent.ACTION_OPEN_DOCUMENT를 사용하도록 대체하기 전에 사용 가능한 경우 이 대체 값을 사용합니다.
  • 이제 ComponentDialogSavedStateRegistryOwner를 구현하고 자체 SavedStateRegistry에 액세스할 수 있으며 ViewTreeSavedStateRegistryOwner를 설정합니다. 이제 ViewTree API 요구사항을 통해 창에 연결된 LifecycleOwnerSavedStateRegistryOwner를 모두 충족하므로 ComponentDialog 내에서 Jetpack Compose를 사용할 수 있습니다.
  • 이제 IntentSenderRequest.Builder.setFlags()를 사용하면 단일 플래그뿐 아니라 여러 플래그를 Intent에서 설정할 수 있습니다.

Kotlin 변환

여러 Activity 클래스가 Kotlin으로 변환되었습니다. 변환된 모든 클래스는 여전히 이전 버전과의 바이너리 호환성을 유지합니다. ActivityResultRegistryOwner, OnBackPressedDispatcherOwner 클래스에는 Kotlin으로 작성된 클래스에 대해 소스와 호환되지 않는 변경사항이 있습니다.

아래 표에는 새 버전의 활동에 대한 소스 전환이 나와 있습니다.

활동 1.5 활동 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

다음 클래스도 Kotlin으로 변환되었지만 소스와 호환됩니다. ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest, OnBackPressedDispatcher

FullyDrawnReporter API

이제 ComponentActivity는 상호작용에 사용할 준비가 되면 여러 구성요소를 보고할 수 있는 FullyDrawnReporter 인스턴스를 제공합니다. ComponentActivity는 모든 구성요소가 완료되기를 기다린 후 자동으로 reportFullyDrawn()을 호출합니다. 이러한 API는 타이밍 요구사항을 처리하며, onDraw 호출의 일부로 이 API를 호출할 필요가 없습니다.

이러한 API는 다음을 사용 설정하는 것이 좋습니다.

  • 시작 시 Android 런타임 신호를 보내 멀티 프레임 시작 시퀀스 중에 실행되는 모든 코드를 포함하고 백그라운드 컴파일 우선순위를 지정해야 합니다.
  • 시작 측정항목을 위해 애플리케이션이 완전히 그려졌다고 판단될 때 Macrobenchmark 및 Play Vitals 신호를 보내 성능을 추적할 수 있습니다.

개별 컴포저블의 FullyDrawnReporter를 더 편리하게 사용할 수 있도록 세 가지 Activity Compose API를 추가했습니다.

  • ReportDrawn는 컴포저블이 즉시 상호작용할 준비가 되었음을 나타냅니다.
  • ReportDrawnWhen은 조건자(예: list.count > 0)를 사용하여 컴포저블의 상호작용 준비 시기를 나타냅니다.
  • ReportDrawnAfter는 완료 시 상호작용할 준비가 되었음을 나타내는 정지 메서드를 사용합니다.

종속 항목 업데이트

버전 1.7.0-rc01

2023년 3월 8일

androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01, androidx.activity:activity-ktx:1.7.0-rc01이 출시되었습니다. 버전 1.7.0-rc01에 포함된 커밋을 확인하세요.

종속 항목 업데이트

버전 1.7.0-beta02

2023년 2월 22일

androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02, androidx.activity:activity-ktx:1.7.0-beta02이 출시되었습니다. 버전 1.7.0-beta02에 포함된 커밋을 확인하세요.

API 변경사항

  • MediaStore.ACTION_PICK_IMAGES를 사용할 수 없을 때 PickVisualMediaPickMultipleVisualMedia 계약에서 대체로 사용하는 작업과 추가 항목은 이제 일관된 사진 선택 도구 환경을 제공하려는 OEM 및 시스템 앱에 API 안정성을 제공하는 공개 상수입니다. 이 대체 구현은 여전히 시스템 앱으로 제한됩니다. 추가했습니다. (Icd320)

버전 1.7.0-beta01

2023년 2월 8일

androidx.activity:activity:1.7.0-beta01, androidx.activity:activity-compose:1.7.0-beta01, androidx.activity:activity-ktx:1.7.0-beta01이 출시되었습니다. 버전 1.7.0-beta01에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 IntentSenderRequest.Builder.setFlags()를 사용하면 단일 플래그뿐 아니라 여러 플래그를 Intent에서 설정할 수 있습니다. (Iac04c)

버그 수정

  • 이제 프레임워크 사진 선택 도구를 사용할 수 없는 경우 PickVisualMedia를 대체하면 기기의 시스템 이미지에 설치된 앱으로만 처리가 올바르게 제한됩니다. (If8ae6)

Kotlin 변환

  • 이제 ActivityResultRegistryOwner가 Kotlin으로 작성됩니다. 이는 Kotlin으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전 activityResultRegistry 함수를 구현하는 대신 getActivityResultRegistry() 속성을 재정의해야 합니다. (I0b00e)
  • 이제 OnBackPressedDispatcherOwner가 Kotlin으로 작성됩니다. 이는 Kotlin으로 작성된 클래스에는 소스와 호환되지 않는 변경사항입니다. 이제 이전 onBackPressedDispatcher 함수를 구현하는 대신 getOnBackPressedDispatcher 속성을 재정의해야 합니다. (Ia277d)
  • 이제 ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest, OnBackPressedDispatcher는 Kotlin으로 작성됩니다. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)

버전 1.7.0-alpha04

2023년 1월 25일

androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04, androidx.activity:activity-ktx:1.7.0-alpha04이 출시되었습니다. 버전 1.7.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • PickVisualMediaPickMultipleVisualMedia 활동 결과 계약에서는 이제 Android 시스템 제공 사진 선택 도구(MediaStore.ACTION_PICK_IMAGES)를 사용할 수 없는 경우에는 Google Play 서비스 제공 사진 선택 도구를 사용합니다. Android 시스템 제공 사진 선택 도구만 감지하는 isPhotoPickerAvailable() API는 지원 중단되었습니다. 둘 중 사용할 수 있는 사진 선택 도구가 있으면 반환하는 새 isPhotoPickerAvailable(Context) API를 사용하는 것이 좋습니다. (I55be6)

버전 1.7.0-alpha03

2023년 1월 11일

androidx.activity:activity:1.7.0-alpha03, androidx.activity:activity-compose:1.7.0-alpha03, androidx.activity:activity-ktx:1.7.0-alpha03이 출시되었습니다. 버전 1.7.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 ComponentDialogSavedStateRegistryOwner를 구현하고 자체 SavedStateRegistry에 액세스할 수 있으며 ViewTree에 SavedStateRegistryOwner를 설정합니다. 이제 ViewTree API 요구사항을 통해 창에 연결된 LifecycleOwnerSavedStateRegistryOwner를 모두 충족하므로 ComponentDialog 내에서 Jetpack Compose를 사용할 수 있습니다. (Idca17, I73468 b/261162296)

API 변경사항

  • reportFullyDrawn을 호출할 준비가 된 활동을 즉시 표시하는 ReportDrawn 컴포저블을 추가했습니다. (Ic5b14, b/259687964)

Kotlin 변환

  • ActvitiyResultCallbackOnBackPressedCallback 클래스는 모두 소스 및 바이너리 호환성을 유지하면서 Kotlin으로 변환되었습니다. (Ifc5e5, Ide1b0, b/257291701)

버전 1.7.0-alpha02

2022년 10월 24일

androidx.activity:activity:1.7.0-alpha02, androidx.activity:activity-compose:1.7.0-alpha02, androidx.activity:activity-ktx:1.7.0-alpha02이 출시되었습니다. 버전 1.7.0-alpha02에 포함된 커밋을 확인하세요.

버그 수정

  • Activity 1.6.1에서: maxItems의 기본값을 사용할 때 Android R 기기에서 PickMultipleVisualMedia 활동 결과 계약이 실행되지 않는 문제가 해결되었습니다. (Ie2776, b/249182130)

버전 1.7.0-alpha01

2022년 10월 5일

androidx.activity:activity:1.7.0-alpha01, androidx.activity:activity-compose:1.7.0-alpha01androidx.activity:activity-ktx:1.7.0-alpha01이 출시되었습니다. 버전 1.7.0-alpha01에 포함된 커밋을 확인하세요.

FullyDrawnReporter API

이제 ComponentActivity는 상호작용에 사용할 준비가 되면 여러 구성요소를 보고할 수 있는 FullyDrawnReporter 인스턴스를 제공합니다. ComponentActivity는 모든 구성요소가 완료되기를 기다린 후 자동으로 reportFullyDrawn()을 호출합니다. 이러한 API는 타이밍 요구사항을 처리하며, onDraw 호출의 일부로 이 API를 호출할 필요가 없습니다.

이러한 API는 다음을 사용 설정하는 것이 좋습니다.

  • 시작 시 Android 런타임 신호를 보내 멀티 프레임 시작 시퀀스 중에 실행되는 모든 코드를 포함하고 백그라운드 컴파일 우선순위를 지정해야 합니다.
  • 시작 측정항목을 위해 애플리케이션이 완전히 그려졌다고 판단될 때 Macrobenchmark 및 Play Vitals 신호를 보내 성능을 추적할 수 있습니다.

개별 컴포저블의 FullyDrawnReporter를 더 편리하게 사용할 수 있도록 Activity Compose API 두 개를 추가했습니다.

  • ReportDrawnWhen은 조건자(예: list.count > 0)를 사용하여 컴포저블의 상호작용 준비 시기를 나타냅니다.
  • ReportDrawnAfter는 완료 시 상호작용할 준비가 되었음을 나타내는 정지 메서드를 사용합니다.

버전 1.6.1

버전 1.6.1

2022년 10월 24일

androidx.activity:activity:1.6.1, androidx.activity:activity-compose:1.6.1, androidx.activity:activity-ktx:1.6.1이 출시되었습니다. 버전 1.6.1에 포함된 커밋을 확인하세요.

버그 수정

  • maxItems의 기본값을 사용할 때 Android R 기기에서 PickMultipleVisualMedia 활동 결과 계약이 실행되지 않는 문제가 해결되었습니다. (Ie2776, b/249182130)

버전 1.6.0

버전 1.6.0

2022년 9월 21일

androidx.activity:activity:1.6.0, androidx.activity:activity-compose:1.6.0, androidx.activity:activity-ktx:1.6.0이 출시되었습니다. 버전 1.6.0에 포함된 커밋을 확인하세요.

1.5.0 이후 중요 변경사항

  • ActivityResultContracts.PickVisualMediaActivityResultContracts.PickMultipleVisualMedia를 추가하여 이전 버전과 호환되는 계약을 제공함으로써 사진 선택 도구가 제공되면 MediaStore.ACTION_PICK_IMAGES를 사용하고, 제공되지 않으면 Intent.ACTION_OPEN_DOCUMENT를 사용합니다.
  • Android 13의 OnBackInvokedCallbackComponentActivityComponentDialog에서 제공하는 OnBackPressedDispatchers에 통합했습니다. 이에 따라 뒤로 탐색 예측 동작을 사용 설정할 경우 OnBackPressedDispatcher에서 빌드된 모든 API가 정상적으로 작동합니다.

버전 1.6.0-rc02

2022년 9월 7일

androidx.activity:activity:1.6.0-rc02, androidx.activity:activity-compose:1.6.0-rc02, androidx.activity:activity-ktx:1.6.0-rc02이 출시되었습니다. 버전 1.6.0-rc02에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 OnBackPressedDispatcherPRIORITY_OVERLAY 대신 PRIORITY_DEFAULTOnBackInvokedCallback을 등록합니다. (I3901f)
  • 이제 ComponentActivity를 확장하는 클래스는 항상 onMultiWindowModeChanged() 콜백 두 개가 모두 전달됩니다. (Ic4d85)
  • launch 호출에서 Exception이 발생했고 콜백이 LifecycleOwner 없이 등록된 경우 ActivityResultRegistry는 더 이상 ActivityResultCallback에 결과를 반환하지 않습니다. (Ia7ff7, b/238350794)
  • ComponentActivity는 이제 활동에서 super 함수를 호출할 필요 없이 메뉴 호출을 올바르게 전달합니다. (Ie33c5, b/238057118)

종속 항목 업데이트

버전 1.6.0-rc01

2022년 8월 24일

androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01, androidx.activity:activity-ktx:1.6.0-rc01이 출시되었습니다. 버전 1.6.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • OnBackPressedDispatcher를 초기화해도 33 이전의 SDK 버전을 사용할 때 더 이상 ClassVerificationError가 발생하지 않습니다. (Ic32e1)
  • 이제 ComponentActivityonPictureInPictureModeChanged() 콜백을 재정의하는 클래스는 항상 콜백을 전달합니다. (Ib7fdb)

버전 1.6.0-beta01

2022년 8월 10일

androidx.activity:activity:1.6.0-beta01, androidx.activity:activity-compose:1.6.0-beta01androidx.activity:activity-ktx:1.6.0-beta01이 출시되었습니다. 버전 1.6.0-beta01에 포함된 커밋을 확인하세요.

API 변경사항

  • null을 전달하면 항상 비정상 종료가 발생했으므로 ComponentActivity에서 지원 중단된 startActivityForResultstartIntentSenderForResult 메서드를 @NonNull로 표시했습니다. (Id2a25, b/231476082)

버그 수정

  • Activity 1.5.1에서: launch 호출에서 Exception이 발생했고 콜백이 LifecycleOwner 없이 등록된 경우 ActivityResultRegistry는 더 이상 ActivityResultCallback에 결과를 반환하지 않습니다. (Ia7ff7, b/238350794)
  • Activity 1.5.1에서: 이제 ComponentActivity이 super 함수를 호출하지 않고도 메뉴 호출을 onPrepareOptionMenu(), onCreateOptionsMenu(), onOptionsItemSelected() 재정의로 올바르게 전달합니다. (Ie33c5, b/238057118)

종속 항목 업데이트

  • Activity 1.5.1에서: 이제 Activity 라이브러리가 Lifecycle 버전 2.5.1에 종속됩니다. (If6697)

버전 1.6.0-alpha05

2022년 6월 15일

androidx.activity:activity:1.6.0-alpha05, androidx.activity:activity-compose:1.6.0-alpha05, androidx.activity:activity-ktx:1.6.0-alpha05이 출시되었습니다. 버전 1.6.0-alpha05는 출시 전 비공개 브랜치에서 개발되었으며 공개 커밋이 없습니다.

API 변경사항

  • 이제 Tiramisu 베타 3 SDK에 맞는 minCompileSdk는 33입니다.

버그 수정

  • Android 10 이하를 실행하는 기기에서 이제 ACTION_OPEN_DOCUMENT를 사용할 수 있도록 PickVisualMedia ActivityResultContract에 SDK 확장 프로그램 검사를 실행할 때 기존의 기기에서 발생하던 비정상 종료 문제를 수정했습니다.

버전 1.6.0-alpha04

2022년 5월 18일

androidx.activity:activity:1.6.0-alpha04androidx.activity:activity-ktx:1.6.0-alpha04가 출시되었습니다.

버그 수정

  • 빌더 또는 최상위 Kotlin 함수를 통해 요청을 만들려고 하면 스택 오버플로가 발생하는 PickVisualMediaRequest의 오류를 수정했습니다.
  • Android 13 개발자 베타 2의 OnBackInvokedCallbackComponentDialog에서 제공하는 OnBackPressedDispatcher에 통합했습니다. 이에 따라 뒤로 탐색 예측 동작을 사용 설정할 경우 OnBackPressedDispatcher에서 빌드된 모든 API가 정상적으로 작동합니다.

버전 1.6.0-alpha03

2022년 4월 27일

androidx.activity:activity:1.6.0-alpha03, androidx.activity:activity-compose:1.6.0-alpha03, androidx.activity:activity-ktx:1.6.0-alpha03이 출시되었습니다.

  • 참고: 이 버전은 Android 13 개발자 베타 1 SDK에서만 컴파일됩니다.

새로운 기능

  • ActivityResultContracts.PickVisualMediaActivityResultContracts.PickMultipleVisualMedia를 추가하여 이전 버전과 호환되는 계약을 제공함으로써 사진 선택 도구가 제공되면 MediaStore.ACTION_PICK_IMAGES를 사용하고, 제공되지 않으면 Intent.ACTION_OPEN_DOCUMENT를 사용합니다.
  • Android 13 개발자 베타 1의 OnBackInvokedCallbackComponentActivity에서 제공하는 OnBackPressedDispatcher에 통합했습니다. 이에 따라 뒤로 탐색 예측 동작을 사용 설정할 경우 OnBackPressedDispatcher에서 빌드된 모든 API가 정상적으로 작동합니다.

버전 1.6.0-alpha01

2022년 3월 23일

androidx.activity:activity:1.6.0-alpha01, androidx.activity:activity-compose:1.6.0-alpha01, androidx.activity:activity-ktx:1.6.0-alpha01이 출시되었습니다.

  • 참고: 이 버전은 Android 13 개발자 프리뷰 2 SDK에서만 컴파일됩니다.

새로운 기능

  • Android 13 개발자 프리뷰 2의 변경사항이 ComponentActivity에 통합되었습니다.

버전 1.5.1

버전 1.5.1

2022년 7월 27일

androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1, androidx.activity:activity-ktx:1.5.1이 출시되었습니다. 버전 1.5.1에 포함된 커밋을 확인하세요.

버그 수정

  • launch() 호출에서 Exception이 발생했고 콜백이 LifecycleOwner 없이 등록된 경우 ActivityResultRegistry는 더 이상 ActivityResultCallback에 결과를 반환하지 않습니다. (Ia7ff7, b/238350794)

  • 이제 ComponentActivity가 super 함수를 호출하지 않고도 메뉴 호출을 onPrepareOptionMenu(), onCreateOptionsMenu(), onOptionsItemSelected() 재정의로 올바르게 전달합니다. (Ie33c5, b/238057118)

종속 항목 업데이트

버전 1.5.0

버전 1.5.0

2022년 6월 29일

androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0, androidx.activity:activity-ktx:1.5.0이 출시되었습니다. 버전 1.5.0에 포함된 커밋을 확인하세요.

1.4.0 이후 중요 변경사항

  • ComponentDialog: ComponentDialog는 시스템 뒤로 버튼을 누르고 대화상자가 표시될 때 호출되는 OnBackPressedDispatcher가 포함된 Dialog의 서브클래스입니다. 무엇보다도 이 서브클래스는 ViewTreeOnBackPressedDispatcherOwner도 설정하기 때문에 뷰에서 ComponentActivityComponentDialog 중 어디에 있어도 상관없이 올바른 디스패처를 검색할 수 있는 일반적인 방법이 제공됩니다.
  • 콜백 인터페이스: 이제 ComponentActivityActivity 콜백 대신 사용할 수 있는 모듈식 콜백 인터페이스 집합을 구현합니다. 이러한 인터페이스에는 OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider가 포함됩니다.
  • CreationExtras 통합: 이제 ComponentActivity에서 Lifecycle 2.5.0CreationExtras를 통해 스테이트리스(Stateless) ViewModelProvider.Factory를 제공할 수 있습니다.

기타 변경사항

  • ActivityResultContracts.CreateDocument의 no 매개변수 생성자가 지원 중단되고 새 생성자로 대체되었습니다. 새 생성자는 Intent.ACTION_CREATE_DOCUMENT에 필요한 구체적인 MIME 유형(예: 'image/png')을 사용합니다.

버전 1.5.0-rc01

2022년 5월 11일

androidx.activity:activity:1.5.0-rc01, androidx.activity:activity-compose:1.5.0-rc01, androidx.activity:activity-ktx:1.5.0-rc01이 1.5.0-beta01에서 변경사항 없이 출시되었습니다. 버전 1.5.0-rc01에 포함된 커밋을 확인하세요.

버전 1.5.0-beta01

2022년 4월 20일

androidx.activity:activity:1.5.0-beta01, androidx.activity:activity-compose:1.5.0-beta01, androidx.activity:activity-ktx:1.5.0-beta01이 출시되었습니다. 버전 1.5.0-beta01에 포함된 커밋을 확인하세요.

종속 항목 업데이트

버전 1.5.0-alpha05

2022년 4월 6일

androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05, androidx.activity:activity-ktx:1.5.0-alpha05이 출시되었습니다. 버전 1.5.0-alpha05에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 ComponentActivityonPanelClosed()가 super onPanelClosed()도 호출하며, 이를 통해 onContextMenuClosed 메서드가 호출되지 않는 문제를 수정했습니다. (Ib6f77)

버전 1.5.0-alpha04

2022년 3월 23일

androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04, androidx.activity:activity-ktx:1.5.0-alpha04이 출시되었습니다. 버전 1.5.0-alpha04에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 SavedStateViewFactorySavedStateRegistryOwner로 초기화된 경우에도 CreationExtras 사용을 지원합니다. 추가 인수가 제공되면 초기화된 인수는 무시됩니다. (I6c43b, b/224844583)

버전 1.5.0-alpha03

2022년 2월 23일

androidx.activity:activity:1.5.0-alpha03, androidx.activity:activity-compose:1.5.0-alpha03androidx.activity:activity-ktx:1.5.0-alpha03이 출시되었습니다. 버전 1.5.0-alpha03에 포함된 커밋을 확인하세요.

API 변경사항

  • 이제 활동 by viewModels() 함수에 CreationExtras를 전달할 수 있습니다. (I6a3e6, b/217600303)

버전 1.5.0-alpha02

2022년 2월 9일

androidx.activity:activity:1.5.0-alpha02, androidx.activity:activity-compose:1.5.0-alpha02, androidx.activity:activity-ktx:1.5.0-alpha02이 출시되었습니다. 버전 1.5.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • ComponentActivity는 이제 모든 구성요소가 PIP 모드 변경 이벤트를 수신할 수 있도록 OnPictureInPictureModeChangedProvider 인터페이스를 구현합니다. (I9f567)
  • ComponentActivity는 이제 모든 구성요소가 멀티 윈도우 모드 변경 이벤트를 수신할 수 있도록 OnMultiWindowModeChangedProvider 인터페이스를 구현합니다. (I62d91)

버전 1.5.0-alpha01

2022년 1월 26일

androidx.activity:activity:1.5.0-alpha01, androidx.activity:activity-compose:1.5.0-alpha01, androidx.activity:activity-ktx:1.5.0-alpha01이 출시되었습니다. 버전 1.5.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • ComponentActivity가 이제 Lifecycle 2.5.0-alpha01의 일부로 도입된 ViewModel CreationExtras와 통합됩니다. (Ie7e00, b/207012584)
  • ComponentDialog를 추가했습니다. 이는 대화상자가 표시될 때 시스템 뒤로 버튼을 누르면 호출되는 OnBackPressedDispatcher를 포함하는 Dialog의 서브클래스입니다. 무엇보다도 이 서브클래스는 ViewTreeOnBackPressedDispatcherOwner도 설정하기 때문에 뷰에서 ComponentActivityComponentDialog 중 어디에 있어도 상관없이 올바른 디스패처를 검색할 수 있는 일반적인 방법이 제공됩니다. (I8a1bc)
  • ComponentActivity가 이제 모든 구성요소가 이러한 이벤트를 수신할 수 있도록 새로운 OnNewIntentProvider 인터페이스를 구현합니다. (If1f8b)
  • ComponentActivity가 이제 모든 구성요소가 이러한 이벤트를 수신할 수 있도록 새로운 OnConfigurationChangedProvider 인터페이스를 구현합니다. (If623b)
  • ComponentActivity가 이제 모든 구성요소가 이러한 이벤트를 수신할 수 있도록 새로운 OnTrimMemoryProvider 인터페이스를 구현합니다. (Ia9295)

API 변경사항

  • ActivityResultContracts.CreateDocument의 no 매개변수 생성자가 지원 중단되고 새 생성자로 대체되었습니다. 새 생성자는 Intent.ACTION_CREATE_DOCUMENT에서 필요한 구체적인 MIME 유형(예: "image/png")을 사용합니다. (I2bec6)
  • 이제 View와 연결된 OnBackPressedDispatcherOwnerContext 변환에 의존하지 않고 ViewTreeOnBackPressedDispatcherOwner를 통해 검색할 수 있습니다. (I74685)

버그 수정

  • registerForActivityResult() 콜백에서 또는 ComponentActivityinit 일부로 추가된 LifecycleObserver 콜백에서 맨 처음 ViewModel에 액세스할 때 발생하는 비정상 종료 문제를 수정했습니다. (Ife83f)

버전 1.4.0

버전 1.4.0

2021년 10월 27일

androidx.activity:activity:1.4.0, androidx.activity:activity-compose:1.4.0, androidx.activity:activity-ktx:1.4.0이 출시되었습니다. 버전 1.4.0에 포함된 커밋을 확인하세요.

1.3.0 이후 중요 변경사항

  • 이제 AndroidX ComponentActivityMenuHost 인터페이스를 구현합니다. 이를 통해 모든 구성요소에서 MenuProvider 인스턴스를 활동에 추가하여 ActionBar에 메뉴 항목을 추가할 수 있습니다. 각 MenuProviderLifecycle과 함께 선택적으로 추가할 수 있습니다. 그러면 Lifecycle 상태에 따라 관련 메뉴 항목의 공개 상태가 자동으로 제어되고 Lifecycle이 소멸되었을 때 MenuProvider 삭제가 처리됩니다.
  • Kotlin에서 ActivityResultContract 클래스를 다시 작성하여 Kotlin으로 맞춤 계약을 작성하는 개발자가 입력 및 출력 클래스의 null 허용 여부를 올바르게 정의할 수 있도록 했습니다.
  • ActivityResultContracts 클래스와 클래스의 계약이 null 허용 여부를 적절하게 보장하도록 Kotlin으로 다시 작성하였습니다.

버전 1.4.0-rc01

2021년 10월 13일

androidx.activity:activity:1.4.0-rc01, androidx.activity:activity-compose:1.4.0-rc01, androidx.activity:activity-ktx:1.4.0-rc01이 출시되었습니다. 버전 1.4.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • launch 호출에서 Exception이 발생하면 ActivityResultRegistry는 더 이상 ActivityResultCallback에 결과를 반환하지 않습니다. (If4f91, b/200845664)

버전 1.4.0-beta01

2021년 9월 29일

androidx.activity:activity:1.4.0-beta01, androidx.activity:activity-compose:1.4.0-beta01, androidx.activity:activity-ktx:1.4.0-beta01이 출시되었습니다. 버전 1.4.0-beta01에 포함된 커밋을 확인하세요.

API 변경사항

  • 자바 프로그래밍 언어에서 코드를 사용할 때 List<? extends Uri> 출력 유형을 사용하게 했던 ActivityResultContracts.OpenMultipleDocumentsActivityResultContracts.GetMultipleContents의 유형이 수정되었습니다. (If71de)
  • ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResultActivityResultContracts.RequestMultiplePermissions 클래스 내 공개 상수는 이제 공개 Companion 객체를 통해 Kotlin을 사용할 때 액세스할 수 있습니다. (aosp/1832555)

문서 업데이트

  • 이제 Activity Result API에서 처리되는 API의 지원 중단 메시지, 즉 startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions, onRequestPermissionsResult가 모두 자세하게 확장되었습니다. (cce80f)

버전 1.4.0-alpha02

2021년 9월 15일

androidx.activity:activity:1.4.0-alpha02, androidx.activity:activity-compose:1.4.0-alpha02, androidx.activity:activity-ktx:1.4.0-alpha02이 출시되었습니다. 버전 1.4.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • 컴포지션에 부작용이 없어야 하므로 이제 activity-compose 아티팩트에 컴포지션의 일부로 ActivityResultLauncherlaunch 메서드를 호출하지 못하게 하는 LaunchDuringComposition 린트 오류가 포함됩니다. 부작용 처리를 위한 API를 사용합니다. (7c2bbe, b/191347220)

API 변경사항

  • Kotlin에서 ActivityResultContract 클래스를 다시 작성하여 Kotlin으로 맞춤 계약을 작성하는 개발자가 입력 및 출력 클래스의 null 허용 여부를 올바르게 정의할 수 있도록 했습니다. (I8a8f5)
  • ActivityResultContracts 클래스와 클래스의 계약이 적절한 null 허용 여부를 보장하기 위해 Kotlin으로 다시 작성하였습니다. (I69802)

버전 1.4.0-alpha01

2021년 9월 1일

androidx.activity:activity:1.4.0-alpha01, androidx.activity:activity-compose:1.4.0-alpha01, androidx.activity:activity-ktx:1.4.0-alpha01이 출시되었습니다. 버전 1.4.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 AndroidX ComponentActivityMenuHost 인터페이스를 구현합니다. 이를 통해 모든 구성요소에서 MenuProvider 인스턴스를 활동에 추가하여 ActionBar에 메뉴 항목을 추가할 수 있습니다. 각 MenuProviderLifecycle과 함께 선택적으로 추가할 수 있습니다. 그러면 Lifecycle 상태에 따라 관련 메뉴 항목의 공개 상태가 자동으로 제어되고 Lifecycle이 소멸되었을 때 MenuProvider 삭제가 처리됩니다. (I3b608):
/**
  * Using the addMenuProvider() API directly in your Activity
  **/
class ExampleActivity : ComponentActivity(R.layout.activity_example) {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // Add menu items without overriding methods in the Activity
   addMenuProvider(object : MenuProvider {
      override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
        // Add menu items here
        menuInflater.inflate(R.menu.example_menu, menu)
      }

      override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
        // Handle the menu selection
        return true
      }
    })
  }
}

/**
  * Using the addMenuProvider() API in a Fragment
  **/
class ExampleFragment : Fragment(R.layout.fragment_example) {

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    // The usage of an interface lets you inject your own implementation
    val menuHost: MenuHost = requireActivity()
  
    // Add menu items without using the Fragment Menu APIs
    // Note how we can tie the MenuProvider to the viewLifecycleOwner
    // and an optional Lifecycle.State (here, RESUMED) to indicate when
    // the menu should be visible
    menuHost.addMenuProvider(object : MenuProvider {
      override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
        // Add menu items here
        menuInflater.inflate(R.menu.example_menu, menu)
      }

      override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
        // Handle the menu selection
        return true
      }
    }, viewLifecycleOwner, Lifecycle.State.RESUMED)
  }

동작 변경사항

  • 등록되지 않았거나 등록 취소된 ActivityResultLauncher에서 launch()를 호출하려고 하면 이제 ActivityResultRegistry에서 IllegalStateException이 발생합니다. (Ida75d, b/192567522)

외부 기여

  • ActivityResult 문서의 오타를 수정해 주신 dmitrilc님께 감사드립니다. (#221)

버전 1.3.1

버전 1.3.1

2021년 8월 4일

androidx.activity:activity:1.3.1, androidx.activity:activity-compose:1.3.1androidx.activity:activity-ktx:1.3.1이 출시되었습니다. 버전 1.3.1에 포함된 커밋을 확인하세요.

종속 항목 업데이트

  • 이제 Activity가 Kotlin 1.5.21에 종속됩니다.
  • 이제 Activity Compose가 Compose 1.0.1에 종속됩니다.

버전 1.3.0

버전 1.3.0

2021년 7월 28일

androidx.activity:activity:1.3.0, androidx.activity:activity-compose:1.3.0androidx.activity:activity-ktx:1.3.0이 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.

1.2.0 이후 중요 변경사항

  • Activity Compose 아티팩트 - activity-compose 아티팩트가 활동에서 Jetpack Compose UI를 호스팅하는 setContent 확장 메서드와 시스템 뒤로 버튼과 Activity Result API를 처리하기 위해 ComponentActivity API와 상호작용하는 Compose 특정 래퍼를 제공합니다. 자세한 내용은 문서를 참고하세요.
  • CaptureVideo 계약 - CaptureVideo ActivityResultContract가 현재 지원 중단된 TakeVideo 계약을 대체하고 여러 카메라 앱에서 작동하는 성공을 나타내는 부울을 반환합니다.
  • PIP 모드 힌트 보기 추적 - activity-ktx의 사용자가 이제 Activity에서 trackPipAnimationHintView 확장 메서드를 사용하여 창을 기준으로 위치를 변경할 때 뷰의 새 위치로 PictureInPictureParams를 자동으로 다시 빌드할 수 있습니다.

버전 1.3.0-rc02

2021년 7월 14일

androidx.activity:activity:1.3.0-rc02, androidx.activity:activity-compose:1.3.0-rc02androidx.activity:activity-ktx:1.3.0-rc02가 출시되었습니다. 버전 1.3.0-rc02에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 ActivityResultRegistry 콜백이 제대로 저장되고 복원되므로 savedState에서 콜백이 중복되지 않습니다. (I97816, b/191893160)

버전 1.3.0-rc01

2021년 7월 1일

androidx.activity:activity:1.3.0-rc01, androidx.activity:activity-compose:1.3.0-rc01androidx.activity:activity-ktx:1.3.0-rc01 버전은 1.3.0-beta02에서 변경사항 없이 출시되었습니다. 버전 1.3.0-rc01에 포함된 커밋을 확인하세요.

버전 1.3.0-beta02

2021년 6월 16일

androidx.activity:activity:1.3.0-beta02, androidx.activity:activity-compose:1.3.0-beta02, androidx.activity:activity-ktx:1.3.0-beta02이 출시되었습니다. 버전 1.3.0-beta02에 포함된 커밋을 확인하세요.

activity-compose가 Compose 1.0.0-beta09에 종속되도록 업데이트되었습니다. 이제 androidx.compose.ui:ui-test-junit4activity-compose에 컴파일 시간 종속 항목을 갖습니다.

버전 1.3.0-beta01

2021년 6월 2일

androidx.activity:activity:1.3.0-beta01, androidx.activity:activity-compose:1.3.0-beta01, androidx.activity:activity-ktx:1.3.0-beta01이 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.

API 변경사항

  • 이전에 지원 중단된 @Composable registerForActivityResult() 메서드가 삭제되었습니다. rememberLauncherForActivityResult()를 사용하세요. (Ic39d3)

버전 1.3.0-alpha08

2021년 5월 18일

androidx.activity:activity:1.3.0-alpha08, androidx.activity:activity-compose:1.3.0-alpha08, androidx.activity:activity-ktx:1.3.0-alpha08이 출시되었습니다. 버전 1.3.0-alpha08에 포함된 커밋을 확인하세요.

새로운 기능

  • CaptureVideo ActivityResultContract가 주어진 URI에 동영상이 성공적으로 저장되었는지 나타내는 부울을 ActivityResultCallback에 반환합니다. 현재 지원 중단된 TakeVideo 계약을 대체합니다. 카메라 앱이 썸네일 비트맵 반환을 거의 지원하지 않아서 결과가 도움이 되지 않기 때문입니다. (Ie21f2, b/185938070)
  • 뷰가 이동할 때마다 PipParams의 소스 rect 힌트를 업데이트하는 새 API Activity#setPipAnimationHintView를 추가했습니다. (I9063d)

API 변경사항

  • 이제 rememberLauncherForActivityResult 함수가 unregister() 함수를 지원 중단하는 런처를 반환합니다. 런처 등록 및 등록 취소는 rememberLauncherForActivityResult에서 자동으로 처리됩니다. (I2443e)

Compose 호환성

  • androidx.activity:activity-compose:1.3.0-alpha08은 Compose 버전 1.0.0-beta07 이상과만 호환됩니다.

버전 1.3.0-alpha07

2021년 4월 21일

androidx.activity:activity:1.3.0-alpha07, androidx.activity:activity-compose:1.3.0-alpha07, androidx.activity:activity-ktx:1.3.0-alpha07이 출시되었습니다. 버전 1.3.0-alpha07에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 rememberLauncherForActivityResult는 재구성으로 인해 계약이 변경되어도 동일한 ActivityResultLauncher 인스턴스에 안정적인 참조를 반환합니다. (Id2d6d)
  • 1.3.0 이상의 안정적이지 않은 Fragment 버전을 사용해도 1.3.0을 사용하라는 거짓양성 린트 오류가 발생하지 않습니다. (aosp/1670206, b/184847092)

버전 1.3.0-alpha06

2021년 4월 7일

androidx.activity:activity:1.3.0-alpha06, androidx.activity:activity-compose:1.3.0-alpha06androidx.activity:activity-ktx:1.3.0-alpha06이 출시되었습니다. 버전 1.3.0-alpha06에 포함된 커밋을 확인하세요.

API 변경사항

  • 반환된 ActivityResultLauncher가 사용자 대신 저장된 관리 대상 객체임을 더 확실히 표현하기 위해 registerForActivityResult() API의 이름을 rememberLauncherForActivityResult()로 바꾸었습니다. 이제 unregister 호출을 시도하면 반환된 ActivityResultLauncher에서 오류가 발생합니다. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.currentLocalActivityResultRegistryOwner.current는 이제 현재 컴포지션에서 사용할 수 있는지 더 효과적으로 판단할 수 있도록 null을 허용하는 값을 반환합니다. 이제 이러한 API가 필요한 각각의 API(예: BackHandler, rememberLauncherForActivityResult())에서는 기본 소유자를 찾을 수 없는 경우 더 상세한 오류가 발생합니다. NavHost는 이제 OnBackPressedDispatcherOwner를 찾을 수 없는 경우에도 작동합니다(예: NavHost를 미리보기하는 경우). (I7d8b4)

버그 수정

  • 이제 BackHandler는 활동이 STOPPED이었다가 다시 STARTED가 되고 다른 콜백이 LifecycleOwner에 추가된 이벤트에서 뒤로 버튼 누름을 제대로 가로챕니다. (I71de6, b/182284739)
  • Unit 입력이 있는 맞춤 ActivityResultContractlaunch() 확장 메서드를 사용하면 더 이상 NullPointerException이 발생하지 않습니다. (I76282, b/183837954)

버전 1.3.0-alpha05

2021년 3월 24일

androidx.activity:activity:1.3.0-alpha05, androidx.activity:activity-compose:1.3.0-alpha05, androidx.activity:activity-ktx:1.3.0-alpha05이 출시되었습니다. 버전 1.3.0-alpha05에 포함된 커밋을 확인하세요.

버그 수정

  • Activity 1.2.2 이상: Fragment 1.3.1 이상을 사용할 때 InvalidFragmentVersionForActivityResult 린트 검사에서 거짓양성이 발생하는 문제를 수정했습니다. (I54da1, b/182388985)
  • Activity 1.2.2 이상: 이제 ComponentActivity가 이전에 다른 Intent에서 추가 항목으로 보유된 ActivityResultContract에서 Intent를 실행할 때 ClassNotFoundException을 방지합니다. (Ieff05, b/182906230)

종속 항목 업데이트

버전 1.3.0-alpha04

2021년 3월 10일

androidx.activity:activity:1.3.0-alpha04, androidx.activity:activity-compose:1.3.0-alpha04, androidx.activity:activity-ktx:1.3.0-alpha04이 출시되었습니다. 버전 1.3.0-alpha04에 포함된 커밋을 확인하세요.

버그 수정

  • Activity 1.2.1 이상: 이제 RequestMultiplePermissions에서 이전에 부여되지 않은 권한만이 아닌 요청된 모든 권한의 결과를 항상 반환합니다. (I50bc3, b/180884668)
  • Activity 1.2.1 이상: 이제 unregister()를 호출하고 동일한 키로 다시 register()를 호출하더라도 진행 중인 launch() 요청이 결과를 반환하도록 ActivityResultRegistry에서 보장합니다. (I9ef34, b/181267562)
  • Activity Compose에서 런타임 클래스 경로에 더 이상 테스트 종속 항목을 추가하지 않습니다. (Ifd8b3)
  • 이전에 설정된 onBack 람다가 재구성 후에도 계속 사용되던 BackHandler 관련 문제를 해결했습니다. (8eb5eb)

버전 1.3.0-alpha03

2021년 2월 24일

androidx.activity:activity:1.3.0-alpha03, androidx.activity:activity-compose:1.3.0-alpha03androidx.activity:activity-ktx:1.3.0-alpha03이 출시되었습니다. 버전 1.3.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 컴포저블 내의 활동에서 결과를 얻을 수 있는 컴포저블 registerForActivityResult 함수가 있습니다. (Ia7851, b/172690553)

API 변경사항

  • 이제 LocalOnBackPressedDispatcherOwner에는 CompositionLocalProvider와 함께 사용할 수 있는 provides 함수가 있습니다. 이 함수는 asProvidableCompositionLocal() API를 대체합니다. (I45d24)

버전 1.3.0-alpha02

2021년 2월 10일

androidx.activity:activity:1.3.0-alpha02, androidx.activity:activity-compose:1.3.0-alpha02, androidx.activity:activity-ktx:1.3.0-alpha02이 출시되었습니다. 버전 1.3.0-alpha02에 포함된 커밋을 확인하세요.

버그 수정

  • Compose 1.0.0-alpha12를 사용할 때 NoSuchMethodError: No static method setContent 예외가 발생하는 Activity Compose 1.3.0-alpha01의 문제를 수정했습니다. 모든 Compose 사용자는 1.3.0-alpha02 이상을 사용해야 합니다. (b/179911234)

API 변경사항

  • BackHandler API를 사용하여 Composable에서 시스템 뒤로 버튼을 가로채도록 할 수 있습니다. (I58ed5, b/172154006)

버전 1.3.0-alpha01

2021년 2월 10일

androidx.activity:activity:1.3.0-alpha01, androidx.activity:activity-compose:1.3.0-alpha01, androidx.activity:activity-ktx:1.3.0-alpha01이 출시되었습니다. 버전 1.3.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 새로운 activity-compose 아티팩트는 androidx.activity 관련 API를 위한 Jetpack Compose 전용 도우미를 제공합니다.
    • ComponentActivity.setContentandroidx.compose.ui.platform.setContent에서 androidx.activity.compose.setContent로 이동했습니다. (Icf416)

알려진 문제

  • Activity Compose 1.3.0-alpha01과 이에 종속된 라이브러리(예: androidx.compose.ui:ui-test-junit4:1.0.0-alpha12)를 사용하면 NoSuchMethodError: No static method setContent 예외가 발생합니다. (b/179911234)

버전 1.2.4

버전 1.2.4

2021년 7월 21일

androidx.activity:activity:1.2.4androidx.activity:activity-ktx:1.2.4가 출시되었습니다. 버전 1.2.4에 포함된 커밋을 확인하세요.

버그 수정

  • Activity 1.3.0-rc02에서: 이제 ActivityResultRegistry 콜백이 제대로 저장되고 복원되므로 savedState에서 콜백이 중복되지 않습니다. (I97816, b/191893160)

버전 1.2.3

버전 1.2.3

2021년 5월 5일

androidx.activity:activity:1.2.3androidx.activity:activity-ktx:1.2.3가 출시되었습니다. 버전 1.2.3에 포함된 커밋을 확인하세요.

버그 수정

  • Unit 입력이 있는 맞춤 ActivityResultContractlaunch() 확장 메서드를 사용하면 더 이상 NullPointerException이 발생하지 않습니다. (I76282, b/183837954)
  • Fragments 새 버전의 스냅샷, 알파, 베타 또는 RC 빌드를 사용할 때 Fragment 1.3.0을 사용하라고 하는 거짓양성 린트 오류를 수정했습니다. (f4a57e, b/184847092)

버전 1.2.2

버전 1.2.2

2021년 3월 24일

androidx.activity:activity:1.2.2androidx.activity:activity-ktx:1.2.2가 출시되었습니다. 버전 1.2.2에 포함된 커밋을 확인하세요.

버그 수정

  • Fragment 1.3.1 이상을 사용할 때 InvalidFragmentVersionForActivityResult 린트 검사에서 거짓양성이 발생하는 문제를 수정했습니다. (I54da1, b/182388985)
  • 이제 ComponentActivity가 이전에 다른 Intent에서 추가 항목으로 보유된 ActivityResultContract에서 Intent를 실행할 때 ClassNotFoundException을 방지합니다. (Ieff05, b/182906230)

종속 항목 업데이트

버전 1.2.1

버전 1.2.1

2021년 3월 10일

androidx.activity:activity:1.2.1androidx.activity:activity-ktx:1.2.1가 출시되었습니다. 버전 1.2.1에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 RequestMultiplePermissions는 이전에 부여되지 않은 권한만이 아닌 요청된 모든 권한의 결과를 항상 반환합니다. (I50bc3, b/180884668)
  • 이제 unregister()를 호출하고 동일한 키로 다시 register()를 호출하더라도 진행 중인 launch() 요청이 결과를 반환하도록 ActivityResultRegistry에서 보장합니다. (I9ef34, b/181267562)

버전 1.2.0

버전 1.2.0

2021년 2월 10일

androidx.activity:activity:1.2.0androidx.activity:activity-ktx:1.2.0가 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.

1.1.0 이후 주요 변경사항

  • Activity Result API: 이제 ComponentActivityActivityResultRegistry를 제공하여 Activity나 Fragment에서 메서드를 재정의하지 않고 startActivityForResult()+onActivityResult()requestPermissions()+onRequestPermissionsResult() 흐름을 처리할 수 있도록 하며 ActivityResultContract를 통해 유형 안전성을 높이고 이러한 흐름을 테스트하는 후크를 제공합니다. 업데이트된 Activity에서 결과 가져오기를 참고하세요.
  • ContextAware: 이제 ComponentActivity에서 ContextAware를 구현하므로 기본 Activity.onCreate() 이전에 콜백을 수신할 OnContextAvailableListener 인스턴스를 하나 이상 추가할 수 있습니다.

    • 정지 Kotlin 확장 withContextAvailable()을 사용하면 컨텍스트를 사용할 수 있게 될 때 정지되지 않은 블록을 실행하고 결과를 반환할 수 있습니다.
    • 이 API는 Fragment 1.3.0FragmentActivity에서 FragmentManager 상태를 복원하는 데 사용합니다. FragmentActivity의 서브클래스에 추가된 모든 리스너는 이 리스너 이후에 실행됩니다.
    • 이 API는 AppCompat 1.3.0-alpha02 이상의 AppCompatActivity에서 사용합니다. AppCompatActivity의 서브클래스에 추가된 모든 리스너는 이 리스너 이후에 실행됩니다.
  • ViewTree 지원: 이제 ComponentActivity에서 Lifecycle 2.3.0SavedState 1.1.0에 추가된 ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View), ViewTreeSavedStateRegistryOwner API를 지원하며 이러한 API는 ComponentActivity에 직접 추가된 모든 View의 LifecycleOwner, ViewModelStoreOwner, SavedStateRegistryOwner로 Activity를 반환합니다.

  • reportFullyDrawn() 백포트 - reportFullyDrawn()Activity 메서드는 모든 API 수준에서 작동하도록 ComponentActivity로 백포트되었습니다. 이는 API 19에서 발생하던 비정상 종료 문제를 수정하고 모든 API 수준에서 이 메서드에 관한 추적을 추가합니다.

버전 1.2.0-rc01

2020년 12월 16일

androidx.activity:activity:1.2.0-rc01androidx.activity:activity-ktx:1.2.0-rc01가 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 ActivityResultRegistry는 저장된 정확한 상태를 항상 복원합니다. (Idd56b)
  • ComponentActivity.reportFullyDrawn에 트레이싱을 추가합니다. (Ic7632)

외부 기여

  • ComponentActivity는 이제 모든 API 수준에서 호출되도록 reportFullyDrawn()을 재정의하며 API 19 기기에서 적절한 시스템 권한 없이 이 메서드를 호출할 때 발생하는 비정상 종료를 해결합니다. 사이먼 쉴러님께 감사드립니다. (b/163239764, #103)

버전 1.2.0-beta02

2020년 12월 2일

androidx.activity:activity:1.2.0-beta02androidx.activity:activity-ktx:1.2.0-beta02가 출시되었습니다. 버전 1.2.0-beta02에 포함된 커밋을 확인하세요.

버그 수정

  • Lifecycle에 등록한 경우 Activity Result API가 결과를 전달하기 전에 Lifecycle의 STARTED까지 기다리지 않는 문제를 수정했습니다. (I109ea)

외부 기여

  • launch()ActivityNotFoundException을 발생시킬 수 있음을 명시적으로 알릴 수 있도록 문서를 업데이트했습니다. 미할 지엘린스키님께 감사드립니다. (aosp/1493580)

버전 1.2.0-beta01

2020년 10월 1일

androidx.activity:activity:1.2.0-beta01androidx.activity:activity-ktx:1.2.0-beta01가 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.

버그 수정

  • ActivityResultRegistry는 이제 요청 코드 register()로 사용하기 위해 할당되지 않은 정수를 찾을 때까지 정수를 무작위로 생성합니다. 따라서 요청 코드 증가로 인해 발생할 수 있는 정수 오버플로가 방지됩니다. (b/168779518)

  • ActivityResultLauncher에서 unregister()를 호출할 때 Lifecycle 관찰자가 올바로 삭제됩니다. (b/165608393)

동작 변경사항

  • Lifecycle이 이미 STARTED에 도달한 LifecycleOwnerregister()를 호출하려고 하면 이제 ActivityResultRegistry에서 IllegalStateException이 발생합니다. (b/165435866)

문서가 업데이트됨

  • ContextAware 문서가 LifecycleOwner에 연결되어 Lifecycle 콜백을 생성 및 폐기 이벤트에 적절한 위치로 강조표시합니다. (aosp/1414152)

버전 1.2.0-alpha08

2020년 8월 19일

androidx.activity:activity:1.2.0-alpha08androidx.activity:activity-ktx:1.2.0-alpha08가 출시되었습니다. 버전 1.2.0-alpha08에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 ComponentActivityContextAware를 구현하므로 기본 Activity.onCreate() 이전에 콜백을 수신할 OnContextAvailableListener 인스턴스를 하나 이상 추가할 수 있습니다. (b/161390636)
    • 정지 Kotlin 확장 withContextAvailable()을 사용하면 컨텍스트를 사용할 수 있게 될 때 정지되지 않은 블록을 실행하고 결과를 반환할 수 있습니다. (I8290c)
    • 이 API는 Fragment 1.3.0-alpha08FragmentActivity에서 FragmentManager 상태를 복원하는 데 사용됩니다. FragmentActivity의 서브클래스에 추가된 모든 리스너는 이 리스너 이후에 실행됩니다. (I513da)
    • 이 API는 AppCompat 1.3.0-alpha02AppCompatActivity에서 사용됩니다. AppCompatActivity의 서브클래스에 추가된 모든 리스너는 이 리스너 이후에 실행됩니다. (I513da)

버그 수정

  • Lint 27.1.0 이상을 사용할 때 ActivityResultFragmentVersionDetector 린트 검사가 중단되는 문제가 수정되었습니다. (b/162155191)

버전 1.2.0-alpha07

2020년 7월 22일

androidx.activity:activity:1.2.0-alpha07androidx.activity:activity-ktx:1.2.0-alpha07가 출시되었습니다. 버전 1.2.0-alpha07에 포함된 커밋을 확인하세요.

새로운 기능

  • Activity Result API 사용 시, Fragment 1.3.0-alpha07을 사용하는지 확인하는 새로운 InvalidFragmentVersionForActivityResult 린트 검사가 추가되어 '유효하지 않은 요청 코드' 발생으로 인한 런타임 비정상 종료와 이전 버전의 Fragment 사용으로 발생하는 작동하지 않는 권한 요청을 방지합니다. (b/152554847)

외부 기여

  • RequestPermission 활동 결과 계약의 결과를 파싱할 때 발생하는 ArrayIndexOutOfBoundsException을 수정했습니다. (I8f9e3, b/161057605)

버전 1.2.0-alpha06

2020년 6월 10일

androidx.activity:activity:1.2.0-alpha06androidx.activity:activity-ktx:1.2.0-alpha06이 출시되었습니다. 버전 1.2.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 Kotlin에서 ActivityResult 클래스의 구조를 해체하여 requestCodeintent에 직접 액세스할 수 있습니다. (b/157212935)
  • 이제 ActivityResultLauncher를 사용하여 런처를 등록하는 데 사용된 ActivityResultContract를 가져올 수 있습니다. (b/156875743)

API 변경사항

  • 브레이킹 체인지: ActivityResultRegistryinvoke() 메서드 이름이 onLaunch()로 변경되었습니다. (b/157496491)
  • 이제 결과가 반환되지 않으면 OpenMultipleDocuments 계약이 등록된 콜백에 null 대신 빈 목록을 반환합니다. (b/157348014)

버전 1.2.0-alpha05

2020년 5월 20일

androidx.activity:activity:1.2.0-alpha05androidx.activity:activity-ktx:1.2.0-alpha05가 출시되었습니다. 버전 1.2.0-alpha05에 포함된 커밋을 확인하세요.

새로운 기능

API 변경사항

  • 이제 TakePicture 계약이 제공된 Uri에 이미지를 작성할 때 카메라 앱에서 거의 지원되지 않았던 미리보기 이미지 Bitmap 대신 성공을 나타내는 boolean을 반환합니다. (b/154302879)
  • 명시적으로 launch()를 사용하여 비동기 작업임을 더 잘 나타내기 위해 ActivityResultLauncherinvoke() 확장이 삭제되었습니다. launch의 Kotlin 확장이 null 또는 Unit을 전달할 필요성을 제거하는 ActivityResultLauncher<Void>ActivityResultLauncher<Unit>androidx.activity.result 패키지에 각각 추가되어 이전 invoke() 확장에서 동작을 미러링합니다. (aosp/1304674, aosp/1304675)
  • setFlagsMask()setFlagsValues()IntentSenderRequest.Builder 메서드가 단일 setFlags() 메서드로 결합되었습니다. (aosp/1302111)

버그 수정

  • LifecycleOwnerActivityResultCallback을 등록할 때 상태가 STARTED에 도달하기 전에 콜백이 트리거되는 문제가 수정되었습니다. (aosp/1309744)

동작 변경사항

  • 이제 ActivityResultRegistry0에서가 아닌 0xFFFF에서 시작하는 요청 코드를 생성하므로 활동에서 startActivityForResult() 또는 requestPermissions()를 사용할 때 중복을 방지합니다. (aosp/1302324)

버전 1.2.0-alpha04

2020년 4월 29일

androidx.activity:activity:1.2.0-alpha04androidx.activity:activity-ktx:1.2.0-alpha04가 출시되었습니다. 버전 1.2.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • ActivityResult API에 startIntentSenderForResult를 호출할 수 있는 계약이 추가되었습니다. (b/153007517)

API 변경사항

  • prepareCall() 메서드의 이름이 여기 ComponentActivityFragment 1.3.0-alpha04에서 모두 registerForActivityResult()로 변경되었습니다. (aosp/1278717)
  • GetContents, OpenDocuments, RequestPermissions 계약의 이름이 각각 GetMultipleContents, OpenMultipleDocuments, RequestMultiplePermissions로 변경되었습니다. (aosp/1280161)
  • 이제 ComponentActivityActivityResultRegisteryOwner 인터페이스를 구현합니다. (aosp/1290888)
  • ComponentActivitystartActivityForResult()/onActivityResult()onRequestPermissionsResult() API가 지원 중단되었습니다. Activity Result API를 사용하세요. (b/154751887)

버그 수정

  • GetMultipleContentsOpenMultipleDocuments 계약을 사용하고 단일 항목을 선택하면 이제 콜백으로 올바르게 반환됩니다. (b/152941153)

버전 1.2.0-alpha03

2020년 4월 1일

androidx.activity:activity:1.2.0-alpha03androidx.activity:activity-ktx:1.2.0-alpha03가 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • ActivityResultContracts에 의해 제공되는 사전 빌드 계약 세트에 TakeVideo, PickContact, GetContent, GetContents, OpenDocument, OpenDocuments, OpenDocumentTree, CreateDocument 계약이 추가되었습니다. (aosp/1262482, aosp/1266916, aosp/1268960)
  • 이제 Activity Result API에서 선택적인 ActivityOptionsCompat를 통해 결과에 대한 활동 실행을 지원합니다. (b/151860054)

API 변경사항

  • 이제 TakePicture 계약은 이미지 저장 위치에 관한 Uri 입력을 받습니다. 어떠한 입력도 받지 않는 이전 계약의 이름이 TakePicturePreview로 변경되었습니다. (aosp/1262482)
  • ActivityResultRegistryregisterActivityResultCallback() 메서드 이름이 register()로 변경되었습니다. (aosp/1267621)
  • ActivityResultLauncherdispose() 메서드 이름이 unregister()로 변경되었고 ActivityResultRegistryunregisterResultCallback()가 삭제되었습니다. (aosp/1267621)
  • 이제 ActivityResultContactcreateIntent() 메서드는 입력과 함께 Context를 받아 명시적 인텐트를 만들 수 있습니다. (aosp/1238800)
  • 이제 ActivityResultContractgetSynchronousResult()를 재정의하여 startActivityForResult를 호출하지 않고 결과를 전달할 수 있습니다. 요청된 권한이 이미 부여된 경우 RequestPermissionRequestPermissions 계약에서 '부여됨' 상태를 올바르게 전달하는 데 사용됩니다. (b/151110799)
  • 이전에 사용 가능한 Dial 계약이 삭제되었습니다. IntentstartActivityForResult()와 함께 사용되도록 되어있지 않기 때문입니다. (aosp/1266916)
  • 이제 확장되지 않은 많은 Activity Result API 다수가 final입니다. 여기에는 getActivityResultRegistry(), prepareCall() 메서드, invoke()를 제외한 모든 ActivityResultRegistry 메서드, 선택적 추가 항목을 지원하지 않는 여러 기본 계약이 포함됩니다. (b/152439361)

버그 수정

  • 구성 변경 후 아직 재등록되지 않은 콜백에 결과를 전달하려고 할 때 ActivityResultRegistryNullPointerException이 수정되었습니다. 이제 ActivityResultRegistry가 대기 중인 결과를 보류하고 콜백이 다시 등록되면 결과를 전달합니다. (b/152137004)

버전 1.2.0-alpha02

2020년 3월 18일

androidx.activity:activity:1.2.0-alpha02androidx.activity:activity-ktx:1.2.0-alpha02가 출시되었습니다. 버전 1.2.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • ActivityResultRegistry: 이제 ComponentActivityActivityResultRegistry를 제공하여 활동 또는 프래그먼트 내 메서드를 재정의하지 않고도 startActivityForResult()+onActivityResult()뿐 아니라 requestPermissions()+onRequestPermissionsResult() 플로우를 처리하도록 지원하고, ActivityResultContract를 통해 유형 안정성을 높이고, 이러한 플로우 테스트에 후크를 제공합니다. 업데이트된 Activity에서 결과 가져오기를 참고하세요. (b/125158199 참조)

버전 1.2.0-alpha01

2020년 3월 4일

androidx.activity:activity:1.2.0-alpha01androidx.activity:activity-ktx:1.2.0-alpha01가 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 모든 뷰에 관해 LifecycleOwner가 Activity에 직접 추가될 때 Activity를 반환하도록 Lifecycle 2.3.0-alpha01에 추가된 ViewTreeLifecycleOwner.get(View) API에 관한 지원이 추가되었습니다. (aosp/1182955)

버그 수정

  • android.app.FragmentManager 내 버그로 인해 onBackPressed()에서 IllegalStateException을 일으키는 이전 버전의 플랫폼에서 실행 시 활동 1.1.0에 도입되던 회귀 문제를 수정했습니다. (b/146290338)

버전 1.1.0

버전 1.1.0

2020년 1월 22일

androidx.activity:activity:1.1.0가 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.

1.0.0 이후 중요 변경사항

  • Lifecycle ViewModel SavedState 통합: by viewModels(), ViewModelProvider 생성자 또는 ViewModelProviders.of()ComponentActivity 또는 그 서브클래스와 함께 사용할 때 SavedStateViewModelFactory가 이제 기본 팩토리로 사용됩니다.

버전 1.1.0-rc03

2019년 12월 4일

androidx.activity:activity:1.1.0-rc03androidx.activity:activity-ktx:1.1.0-rc03가 출시되었습니다. 버전 1.1.0-rc03에 포함된 커밋을 확인하세요.

종속 항목 변경사항

  • 이제 Activity가 Lifecycle 2.2.0-rc03 및 Lifecycle ViewModel SavedState 1.0.0-rc03에 종속됩니다.

버전 1.1.0-rc02

2019년 11월 7일

androidx.activity:activity:1.1.0-rc02androidx.activity:activity-ktx:1.1.0-rc02가 출시되었습니다. 버전 1.1.0-rc02에 포함된 커밋을 확인하세요.

종속 항목 변경사항

  • 이제 Activity가 Lifecycle 2.2.0-rc02에 종속됩니다.

버전 1.1.0-rc01

2019년 10월 23일

androidx.activity:activity:1.1.0-rc01androidx.activity:activity-ktx:1.1.0-rc011.1.0-beta01에서 변경사항 없이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.

버전 1.1.0-beta01

2019년 10월 9일

androidx.activity:activity:1.1.0-beta01androidx.activity:activity-ktx:1.1.0-beta01이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.

종속 항목 변경사항

  • 이제 Activity가 SavedState 1.0.0 안정화 버전에 종속됩니다.

버전 1.1.0-alpha03

2019년 9월 5일

androidx.activity:activity:1.1.0-alpha03androidx.activity:activity-ktx:1.1.0-alpha03가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 Activity가 Core 1.1.0 안정화 버전에 종속됩니다.

버그 수정

버전 1.1.0-alpha02

2019년 8월 7일

androidx.activity:activity:1.1.0-alpha02androidx.activity:activity-ktx:1.1.0-alpha02가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 SavedStateViewModelFactoryComponentActivity와 함께 by viewModels(), ViewModelProvider 생성자, ViewModelProviders.of()를 사용할 때 사용되는 기본 팩터리입니다. (b/135716331 참조)

버전 1.1.0-alpha01

2019년 7월 2일

androidx.activity:activity:1.1.0-alpha01androidx.activity:activity-ktx:1.1.0-alpha01가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 activity가 Lifecycle 2.2.0-alpha02에 종속됩니다. (aosp/1007817 참조)
  • activity-ktxlifecycle-runtime-ktx에 관한 종속 항목이 추가되었습니다. 따라서 activity-ktx 또는 activity-ktx에 종속되는 라이브러리(예: fragment-ktx)를 사용할 때 더 이상 종속 항목에 명시적으로 추가할 필요가 없습니다. (aosp/987162)

버전 1.0.0

버전 1.0.0

2019년 9월 5일

androidx.activity:activity:1.0.0androidx.activity:activity-ktx:1.0.0가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

1.0.0의 주요 기능

  • ComponentActivity: ComponentActivityFragment 1.1.0FragmentActivity에 관해 그리고 확장하여 AppCompat 1.1.0AppCompatActivity에 관해 새로운 기본 클래스 역할을 합니다.
  • activity-ktx: activity-ktx 모듈에는 ViewModel에 액세스하기 위한 by viewModels Kotlin 속성 확장을 포함합니다. Fragment 1.1.0fragment-ktx를 포함하면 이 모듈이 자동으로 포함됩니다.
  • OnBackPressedDispatcher: onBackPressed()를 재정의하는 대신 구성 가능한 다른 방법으로, 이제 시스템의 뒤로 버튼 이벤트를 가로채도록 LifecycleOwner에서(예: Fragment) OnBackPressedCallback을 등록할 수 있습니다. 수신기 버전 addCallback이 포함된 람다가 activity-ktx에 추가되었습니다. 자세한 내용은 맞춤형 뒤로 탐색 기능 제공 문서를 참고하세요.
  • onRetainCustomNonConfigurationInstance 지원 중단: onRetainCustomNonConfigurationInstance() 및 관련 getLastCustomNonConfigurationInstance() API가 지원 중단되었습니다. 비구성 상태를 저장하는 데 ViewModel을 사용하는 것이 좋습니다. 보관된 객체의 소유권을 명확히 하고 활동이 최종적으로 제거되는 경우 리소스를 지우기 위한 onCleared() 콜백을 제공하는 ViewModelStoreOwner에 적합한 구성 가능한 솔루션을 제공합니다.

버전 1.0.0-rc01

2019년 7월 2일

androidx.activity:activity:1.0.0-rc01androidx.activity:activity-ktx:1.0.0-rc011.0.0-beta01에서 변경사항 없이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버전 1.0.0-beta01

2019년 6월 5일

androidx.activity::activity:1.0.0-beta01androidx.activity:activity-ktx:1.0.0-beta011.0.0-alpha08에서 변경사항 없이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버전 1.0.0-alpha08

2019년 5월 7일

androidx.activity:activity:1.0.0-alpha08androidx.activity:activity-ktx:1.0.0-alpha08이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

API 변경사항

  • 브레이킹 체인지: 이전에 지원 중단된 ComponentActivity에 관한 addOnBackPressedCallbackremoveOnBackPressedCallback 메서드를 삭제했습니다. (aosp/953857 참조)
  • 이제 OnBackPressedCallbacksetEnabled()isEnabled() 메서드가 최종입니다. (b/131416833 참조)
  • 이제 OnBackPressedCallbackremove() 메서드가 최종입니다. (aosp/952720 참조)
  • 이제 OnBackPressedDispatcher에 공개 생성자가 있으므로 테스트 등을 위해 자체 인스턴스를 생성할 수 있습니다. (aosp/953431 참조)
  • 이제 ComponentActivityonBackPressed()@MainThread로 명시적으로 표시됩니다. (aosp/952721 참조)

버그 수정

  • LifecycleOwner와 함께 추가된 OnBackPressedCalbackhandleOnBackPressed() 메서드 내에서 remove()를 호출할 때 발생하는 ConcurrentModificationException을 수정했습니다. (b/131765095 참조)

버전 1.0.0-alpha07

2019년 4월 25일

androidx.activity:activity:1.0.0-alpha07androidx.activity:activity-ktx:1.0.0-alpha07가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

API 변경사항

이 릴리스에서는 onBackPressed() 처리에 상당한 변경사항이 있습니다. 자세한 내용은 업데이트된 맞춤형 뒤로 기능 문서를 참고하세요.

  • OnBackPressedCallbackOnBackPressedDispatcher의 메서드가 @MainThread로 표시되었습니다. (aosp/943813 참조)
  • handleOnBackPressed() 메서드가 더 이상 boolean을 반환하지 않습니다. 대신 OnBackPressedCallback은 이제 추상 클래스이며 사용 설정하거나 사용 중지할 수 있습니다. 새 isEnabled() 메서드가 true를 반환하는 경우에만 handleOnBackPressed()가 호출됩니다. 이 경우 뒤로 버튼을 반드시 처리해야 합니다. (aosp/944518 참조)
  • OnBackPressedDispatcheraddCallback 메서드가 더 이상 Cancellable 인스턴스를 반환하지 않습니다. 이제 OnBackPressedCallback에 이 기능을 처리하는 remove() 메서드가 포함되어 있으므로 handleOnBackPressed() 중에 remove()를 호출할 수 있습니다. (aosp/944519aosp/946316 참조)
  • 이제 activity-ktx에는 handleOnBackPressed()를 구현하고 isEnabledremove()에 액세스할 수 있는 람다를 허용하는 addCallback을 위한 수신기 범위 지정 콜백이 포함되어 있습니다. (aosp/944520 참조)

버전 1.0.0-alpha06

2019년 4월 3일

androidx.activity:activity:1.0.0-alpha06androidx.activity:activity-ktx:1.0.0-alpha06가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

API 변경사항

  • 이제 ComponentActivity에는 @LayoutRes int를 사용하는 두 번째 생성자가 포함되어 있으며 이 생성자는 @ContentView로 AppCompatActivity 클래스에 주석을 다는 이전 동작을 대체합니다. 이 접근 방법은 앱과 라이브러리 모듈 모두에서 적용됩니다. (b/128352521 참조)
  • ComponentActivity의 OnBackPressedCallback 관련 API가 지원 중단되고 getOnBackPressedDispatcher()를 통해 검색 가능한 새 OnBackPressedDispatcher로 대체되었습니다. (aosp/922523 참조)
  • OnBackPressedCallbackOnBackPressedDispatcher에 추가하는 메서드가 이제 Cancellable 객체를 반환하므로 OnBackPressedDispatcher를 명시적으로 참조할 필요 없이 콜백을 삭제할 수 있습니다. (aosp/922523 참조)
  • OnBackPressedCallback을 연결된 LifecycleOwner와 함께 추가하면 이제 Lifecycle이 시작되고 중지될 때 OnBackPressedCallback이 추가 및 삭제됩니다. (aosp/922523 참조)

버전 1.0.0-alpha05

2019년 3월 13일

androidx.activity:activity:1.0.0-alpha05androidx.activity:activity-ktx:1.0.0-alpha05가 출시되었습니다. 이 출시에 포함된 커밋의 전체 목록은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 @ContentView 주석 조회가 캐시됩니다. (b/123709449 참조)

버전 1.0.0-alpha04

2019년 1월 30일

androidx.activity:activity 1.0.0-alpha04androidx.activity:activity-ktx 1.0.0-alpha04가 출시되었습니다.

새로운 기능

  • 확장되어야 하는 레이아웃 XML 파일을 나타낼 수 있는 @ContentView 클래스 주석 지원이 setContentView()를 사용하는 대신 추가되었습니다. (aosp/837619 참조)

API 변경사항

  • getViewModelStore()는 재정의해서는 안 되며 향후 출시에서 완료될 예정이라는 메모가 추가되었습니다. 현재 이 메서드를 재정의하고 있다면 기능 요청을 제출하세요. (aosp/837619 참조)

버그 수정

  • activity 모듈은 이제 activity-ktx 모듈의 종속성에 맞추기 위해 ViewModel 버전 2.1.0-alpha02에 종속됩니다.

버전 1.0.0-alpha03

2018년 12월 17일

androidx.activity 1.0.0-alpha03가 출시되었습니다.

새로운 기능

  • ComponentActivity는 이제 BundleSavedStateRegistryOwner를 구현하며 새로 출시된 SavedState 라이브러리에 종속됩니다. [aosp/815133 참조]
  • ComponentActivity는 이제 InputMethodManager가 마지막 포커스 뷰를 유출시키는 Android 프레임워크 버그를 해결합니다. [b/37122102]

버전 1.0.0-alpha02

2018년 12월 3일

API 변경사항

  • getLifecycle()은 재정의해서는 안 되며 향후 출시에서 final이 될 예정이라는 메모가 추가되었습니다. 현재 이 메서드를 재정의하려면 기능 요청을 제출하세요. (aosp/815834 참조)

버전 1.0.0-alpha01

2018년 11월 5일

androidx.activity 1.0.0-alpha01에서는 기존 FragmentActivityAppCompatActivity의 새로운 기본 클래스로 ComponentActivity를 도입합니다.

새로운 기능

  • 이제 addOnBackPressedCallback을 통해 OnBackPressedCallback을 등록하여 활동에서 메서드를 재정의하지 않고도 onBackPressed() 콜백을 수신할 수 있습니다.
  • ComponentActivity에서 ViewModel을 검색하기 위한 새 by viewModels() Kotlin 속성 위임을 추가했습니다.
  • 대기 중인 입력 이벤트(예: 클릭)가 이제 onStop()에서 취소됩니다.

API 변경사항

  • LifecycleOwnerViewModelStoreOwner 구현이 FragmentActivity에서 ComponentActivity로 이동했습니다.
  • onRetainCustomNonConfigurationInstance가 지원 중단되었습니다. 구성 변경 이후에도 효력을 유지해야 하는 객체를 저장하려면 ViewModel을 사용하세요.