Aktywność

Uzyskaj dostęp do kompozycyjnych interfejsów API opartych na aktywności.
Najnowsza aktualizacja Wersja stabilna Kandydat do publikacji Wersja Beta Wersja alfa
17 kwietnia 2024 r. 1,9,0 - - -

Deklarowanie zależności

Aby dodać zależność od aktywności, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Odlotowy

dependencies {
    def activity_version = "1.9.0"

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

Kotlin

dependencies {
    val activity_version = "1.9.0"

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy numer

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.9

Wersja 1.9.0

17 kwietnia 2024 r.

Opublikowano androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0 i androidx.activity:activity-ktx:1.9.0. Wersja 1.9.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.8.0

  • ComponentActivity korzysta teraz z metody OnUserLeaveHintProvider, by umożliwić komponenty wywołań zwrotnych w przypadku zdarzeń onUserLeaveHint.
  • Interfejsy API OnBackPressedCallback, BackHandler i PredictiveBackHandler ostrzegają teraz, gdy wywołuje to metodę onBackPressedDispatcher.onBackPressed() przy użyciu wstecznej, ponieważ zawsze powoduje to przerwanie animacji przewidującej wstecz. Więcej informacji znajdziesz w przewodniku po sprawdzonych metodach.
  • Pozostałe interfejsy API Activity API zostały napisane na nowo w Kotlin, a wszystkie rozszerzenia dostępne wcześniej w activity-ktx zostały przeniesione do activity. Plik activity-ktx jest teraz całkowicie pusty.
    • W ramach przekształcania funkcji ActivityResultLauncher w kod Kotlin metoda getContract jest teraz abstrakcyjną właściwością Kotlin. Jest to zmiana zgodna z systemem binarnym, ale źródłowa jest awaria, jeśli implementacja ActivityResultLauncher została napisana w kotlinie.

Wersja 1.9.0-rc01

3 kwietnia 2024 r.

Opublikowano androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01 i androidx.activity:activity-ktx:1.9.0-rc01. Wersja 1.9.0-rc01 zawiera te zatwierdzenia.

Aktualizacja zależności

Wersja 1.9.0-beta01

20 marca 2024 r.

Opublikowano androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01 i androidx.activity:activity-ktx:1.9.0-beta01. Wersja 1.9.0-beta01 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono spadek wydajności uruchamiania aktywności w aktywności 1.9.0-alpha02 powodowany przez wywołanie metody OnBackPressedDispatcher podczas tworzenia aktywności. (Ie75e3)

Wersja 1.9.0-alfa03

7 lutego 2024 r.

Opublikowano androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03 i androidx.activity:activity-ktx:1.9.0-alpha03. Wersja 1.9.0-alpha03 zawiera te zatwierdzenia.

Lunch z ostrzeżeniem

Poprawki błędów

  • Jeśli w trakcie prognostycznego gestu wstecznego zostanie wysłane zdarzenie wstecz, które zostanie wysłane z systemu uruchomionego w trakcie prognostycznego gestu wstecz, obecnie aktywny gest przewidywanego przejścia wstecz zostanie anulowany i przejmie nowe zdarzenie powrotu, aby rozpocząć nowy gest przewidywań wstecznych. (I3482e)
  • Naprawiono awarię, która występowała podczas pierwszego uzyskiwania dostępu do dokumentu onBackPressedDispatcher z poziomu ComponentActivity z wątku w tle. Możesz teraz bezpiecznie uzyskać dostęp do: onBackPressedDispatcher w dowolnym wątku. (I79955)

Wersja 1.9.0-alfa02

24 stycznia 2024 r.

Opublikowano androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02 i androidx.activity:activity-ktx:1.9.0-alpha02. Wersja 1.9.0-alpha02 zawiera te zatwierdzenia.

Konwersje Kotlin

  • Tekst ActivityResultRegistry został napisany od nowa w Kotlin. Dzięki temu informacje ogólne dotyczące umowy przekazanej do register będą prawidłowo przekazywane do ActivityResultLauncher. (I121f0).
  • Tekst ActivityResult został napisany od nowa w Kotlin. Rozszerzenia ActivityResult Kotlin, które obsługują niszczenie struktury w polach resultCode i data, zostały przeniesione z activity-ktx do activity. (I0565a)
  • Rozszerzenia Kotlin o nazwie by viewModels() dla użytkowników ComponentActivity i trackPipAnimationHintView zostały przeniesione z folderu activity-ktx do folderu activity. Artefakt activity-ktx jest teraz całkowicie pusty. (I0a444)

Poprawki błędów

  • Interfejs enableEdgeToEdge API rysuje teraz wokół wszystkich wycięć w ekranie. (A3644b, b/311173461)
  • Z Aktywności 1.8.2: poprawiliśmy dodatkową informację przekazaną do ACTION_SYSTEM_FALLBACK_PICK_IMAGES umowy dotyczącej aktywności selektora zdjęć, aby prawidłowo przekazywać klucz EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, zamiast używać dodatkowego z kluczem "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Zdecydowanie zalecamy to rozwiązanie, jeśli jesteś producentem OEM i wdrożył zastępczy selektor zdjęć, aby zapewnić obsługę obu dodatków, aby zapewnić jak największą zgodność. (I96a00)

Wersja 1.9.0-alfa01

29 listopada 2023 r.

Opublikowano androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01 i androidx.activity:activity-ktx:1.9.0-alpha01. Wersja 1.9.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • ComponentActivity korzysta teraz z metody OnUserLeaveHintProvider, by umożliwić komponenty wywołań zwrotnych w przypadku zdarzeń onUserLeaveHint. (I54892)

Zmiany w interfejsie API

  • Tekst ComponentActivity został napisany od nowa w Kotlin. (I14f31).
  • Tekst ActivityResultCaller został napisany od nowa w Kotlin. (Ib02e4).
  • Tekst ActivityResultLauncher został napisany od nowa w Kotlin. W ramach tej konwersji metoda getContract jest teraz abstrakcyjną właściwością Kotlin. Jest to zmiana zgodna z systemem binarnym, ale źródłowa jest awaria, jeśli implementacja ActivityResultLauncher została napisana w kotlinie. (Id4615).
  • PickVisualMediaRequest ma teraz ten sam minimalny poziom interfejsu API wynoszący 19 co umowa dotycząca wyniku aktywności w PickVisualMedia. (Id6e21).

Aktualizacja zależności

Wersja 1.8

Wersja 1.8.2

13 grudnia 2023 r.

Opublikowano androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2 i androidx.activity:activity-ktx:1.8.2. Wersja 1.8.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawiliśmy dodatkową informację przekazywaną do elementu ACTION_SYSTEM_FALLBACK_PICK_IMAGES umowy dotyczącej aktywności selektora zdjęć, aby prawidłowo przekazywać klucz EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, zamiast używać tego dodatkowego z kluczem "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Zdecydowanie zalecamy to rozwiązanie, jeśli jesteś producentem OEM i wdrożył zastępczy selektor zdjęć, aby zapewnić obsługę obu dodatków, aby zapewnić jak największą zgodność. (I96a00)

Wersja 1.8.1

15 listopada 2023 r.

Opublikowano androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1 i androidx.activity:activity-ktx:1.8.1. Wersja 1.8.1 zawiera te zatwierdzenia.

Poprawki błędów

  • OnBackPressedDispatcher nadal wysyła pocztę do właściwego urządzenia OnBackPressedCallback, nawet po dodaniu nowego obiektu OnBackPressedCallback podczas obsługi gestu cofania. (Id0ff6)

Wersja 1.8.0

4 października 2023 r.

Opublikowano androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0 i androidx.activity:activity-ktx:1.8.0. Wersja 1.8.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.7.0

  • Przewidywanie wsteczne – oprócz poprzedniego wywołania zwrotnego handleOnBackPressed() po wykonaniu gestu cofania OnBackPressedCallback oferuje teraz nowe wywołania zwrotne funkcji przewidującej wstecz do obsługi rozpoczynania gestu cofania, postępu w trakcie gestu i anulowania gestu cofania. Jest też dostępna w ramach funkcji kompozycyjnej PredictiveBackHandler, która umożliwia obsługę zdarzeń polegających na przewidywaniu gestów wstecz w ramach tworzenia aktywności. Udostępnia przepływ obiektów BackEventCompat, które muszą być zbierane w dostarczonym przez Ciebie narzędziu lamba zawieszenia:
  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
    }
  }

Interfejs ComponentActivity.onBackPressed() został wycofany i zastąpiono interfejsami API do obsługi zwrotnej. Deweloperzy powinni teraz używać metody OnBackPressedDispatcher, zamiast zastępować tę metodę.

  • EdgeToEdge – dodano komponent ComponentActivity.enableEdgeToEdge(), aby łatwo skonfigurować wyświetlanie od krawędzi do krawędzi w sposób zgodny wstecznie.

Wersja 1.8.0-rc01

20 września 2023 r.

Opublikowano androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01 i androidx.activity:activity-ktx:1.8.0-rc01. Wersja 1.8.0-rc01 zawiera te zatwierdzenia.

Wersja 1.8.0-beta01

6 września 2023 r.

Opublikowano androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01 i androidx.activity:activity-ktx:1.8.0-beta01. Wersja 1.8.0-beta01 zawiera te zatwierdzenia.

Ulepszenie dokumentacji

  • Ulepszyliśmy dokumentację BackEventCompat. (Aosp/2722254)

Wersja 1.8.0-alfa07

23 sierpnia 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07 i androidx.activity:activity-ktx:1.8.0-alpha07. Wersja 1.8.0-alpha07 zawiera te zatwierdzenia.

Nowe funkcje

  • Funkcja tworzenia aktywności zawiera nowy element kompozycyjny PredictiveBackHandler, który obsługuje zdarzenia przewidywania gestów wstecz. Udostępnia Flow z BackEventCompat obiektów, które muszą być zebrane w udostępnionym przez Ciebie systemie lamba:

    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
      }
    }
    

    Zawiera też ostrzeżenie o czasie kompilacji przez regułę lintowania, aby zapewnić, że Flow wywołuje metodę collect(). (Id2773, b/294884345)

  • Obiekt onBackPressedDispatcher w ComponentActivity jest teraz inicjowany leniwie, więc jest tworzony tylko wtedy, gdy jest wymagany. (I0bf8e)

Poprawki błędów

  • ComponentActivity nie będzie już wyświetlać identyfikatora NPE na Androidzie 13, gdy otrzyma wywołanie zwrotne onBackPressed(), a Aktywność będzie już oznaczona jako DESTROYED. (Idb055, b/291869278)
  • Usunięto przypadki użycia eksperymentalnego interfejsu API isAtLeastU() (Ie9117, b/289269026)

Wersja 1.8.0-alfa06

21 czerwca 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06 i androidx.activity:activity-ktx:1.8.0-alpha06. Wersja 1.8.0-alpha06 zawiera te zatwierdzenia.

Nowe funkcje

  • OnBackPressedDispatcher teraz prawidłowo anuluje wywołania zwrotne, które są usuwane podczas gestu przewidywanego przejścia wstecz. (I3f90f)

Zmiany w interfejsie API

  • Podczas przekazywania parametru SystemBarStyle.auto do interfejsu API enableEdgeToEdge możesz teraz zastąpić parametr lambda detectDarkMode, aby udostępnić niestandardową logikę wykrywania trybu nocnego. (Aosp/2546393, b/278263793)

Wersja 1.8.0-alfa05

7 czerwca 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05 i androidx.activity:activity-ktx:1.8.0-alpha05. Ta wersja została opracowana w gałęzi wewnętrznej.

Zmiany w interfejsie API

  • Aktywność udostępnia teraz klasę BackEventCompat, która służy jako zgodną wstecznie wersja BackEvent, która jest odłączona od klasy BackEvent platformy.
  • Zmiana powodująca niezgodność: metody handleOnBackStarted i handleOnBackProgressed obiektu OnBackPressedCallback otrzymują teraz instancję androidx.activity.BackEventCompat, a nie klasę android.window.BackEvent platformy. Zaktualizowaliśmy też interfejsy API @VisibleForTesting w systemie OnBackPressedDispatcher.
  • Konstruktor dla OnBackPressedDispatcher przyjmuje teraz opcjonalne wystąpienie Consumer<Boolean>, które pozwala właścicielom dyspozytora otrzymywać wywołanie zwrotne, gdy liczba włączonych wywołań zwrotnych zmieni się z 0 na inną niż 0 lub na odwrót.

Poprawki błędów

Wersja 1.8.0-alfa04

10 maja 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04 i androidx.activity:activity-ktx:1.8.0-alpha04. Ta wersja została zwolniona z gałęzi wewnętrznej.

Poprawki błędów

Wersja 1.8.0-alfa03

12 kwietnia 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03 i androidx.activity:activity-ktx:1.8.0-alpha03. Ta wersja została zwolniona z gałęzi wewnętrznej.

Nowe funkcje

  • Dodano funkcję ComponentActivity.setUpEdgeToEdge(), która ułatwia konfigurowanie ekranu od krawędzi do krawędzi w sposób zgodny wstecznie.

Zmiany w interfejsie API

  • Interfejs ComponentActivity.onBackPressed() został wycofany i zastąpiono interfejsami API do obsługi zwrotnej. Deweloperzy powinni teraz używać metody OnBackPressedDispatcher, zamiast zastępować tę metodę. (Ibce2f, b/271596918)
  • ComponentDialog i ComponentActivity zawierają teraz publiczny interfejs API initViewTreeOwners(), który służy do inicjowania wszystkich właścicieli drzewa widoku przed ustawieniem widoku treści. (Ibdce0, b/261314581)

Poprawki błędów

  • Naprawiono błąd polegający na tym, że elementy Fragmenty nieprawidłowo unieważniły MenuHosts i powodowały nieoczekiwane działanie innych menu w aktywności. (I9404e, b/244336571)

Inne zmiany

  • W ActivityResultRegister używany jest teraz Kotlin Random zamiast Java. (I4d98f, b/272096025)

Wersja 1.8.0-alfa02

8 marca 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02 i androidx.activity:activity-ktx:1.8.0-alpha02. Opracowane na podstawie gałęzi wewnętrznej.

Aktualizacja zależności

Wersja 1.8.0-alfa01

8 lutego 2023 r.

Opublikowano androidx.activity:activity:1.8.0-alpha01, androidx.activity:activity-compose:1.8.0-alpha01 i androidx.activity:activity-ktx:1.8.0-alpha01. Zostało to utworzone na podstawie gałęzi wewnętrznej.

Nowe funkcje

  • Klasa OnBackPressedCallback zawiera teraz nowe wywołania zwrotne postępu prognostycznego wstecznego do obsługi uruchamiania gestu wstecz, postępu w trakcie gestu i anulowania gestu cofania oprócz poprzedniego wywołania zwrotnego handleOnBackPressed() dla gestu cofania.

Wersja 1.7

Wersja 1.7.2

24 maja 2023 r.

Opublikowano androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2 i androidx.activity:activity-ktx:1.7.2. Wersja 1.7.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawianie awarii aplikacji ReportDrawn podczas opuszczania ekranu przed wywołaniem report. (Ic46f1, b/260506820)

Wersja 1.7.1

19 kwietnia 2023 r.

Opublikowano androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1 i androidx.activity:activity-ktx:1.7.1. Wersja 1.7.1 zawiera te zatwierdzenia.

Poprawki błędów

  • ReportFullyDrawExecuter nie wycieka podczas używania ComponentActivity z ActivityScenario. (Id2ff2, b/277434271)

Wersja 1.7.0

22 marca 2023 r.

Opublikowano androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0 i androidx.activity:activity-ktx:1.7.0. Wersja 1.7.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.6.0

  • Zaktualizowaliśmy umowy dotyczące aktywności selektora zdjęć w usługach PickVisualMedia i PickMultipleVisualMedia, aby uwzględnić dodatkową opcję zastępczą, gdy usługa MediaStore.ACTION_PICK_IMAGES jest niedostępna. Pozwala to producentom OEM i aplikacjom systemowym, takim jak Usługi Google Play, zapewnienie spójnego sposobu korzystania z selektora zdjęć na większej liczbie urządzeń z Androidem i poziomu interfejsu API przez wdrożenie działania awaryjnego. Selektor zdjęć użyje tej kreacji zastępczej, jeśli będzie ona dostępna, a następnie przełączy się na interfejs Intent.ACTION_OPEN_DOCUMENT, który nadal będzie obsługiwać wszystkie urządzenia z interfejsem API w wersji 19 i nowszych.
  • ComponentDialog implementuje teraz SavedStateRegistryOwner i ma dostęp do własnego SavedStateRegistry oraz ustawia SavedStateRegistryOwner dla ViewTree. Jetpack Compose można teraz używać w obiekcie ComponentDialog, ponieważ spełnia on wymagania LifecycleOwner i SavedStateRegistryOwner dołączone do Window przez ViewTree API.
  • IntentSenderRequest.Builder.setFlags() umożliwia teraz ustawienie wielu flag z Intent, a nie tylko jednej.

Konwersja Kotlin

Niektóre zajęcia zostały zmienione na Kotlin. Wszystkie przekonwertowane klasy zachowują zgodność binarną z poprzednimi wersjami. Te klasy mają niezgodne źródła w przypadku klas napisanych w języku Kotlin: ActivityResultRegistryOwner, OnBackPressedDispatcherOwner.

Tabela poniżej zawiera źródłowe konwersje w nowej wersji aktywności:

Ćwiczenie 1.5 Ćwiczenie 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

Te zajęcia zostały też przekonwertowane na język Kotlin, ale pozostają zgodne ze źródłem: ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest i OnBackPressedDispatcher

Interfejsy API FullyDrawnReporter

ComponentActivity udostępnia teraz wystąpienie FullyDrawnReporter, które umożliwia wielu komponentom raportowanie, gdy są gotowe do interakcji. ComponentActivity poczeka na zakończenie działania wszystkich komponentów, zanim zadzwoni w Twoim imieniu pod numer reportFullyDrawn(). Te interfejsy API spełniają wymagania dotyczące czasu i nie muszą być wywoływane w ramach wywołania onDraw.

Zalecamy włączenie tych interfejsów API:

  • Sygnalizowanie środowiska wykonawczego Androida po zakończeniu uruchamiania, aby zapewnić uwzględnienie całego kodu podczas wieloklatkowej sekwencji uruchamiania i sprawić, że kompilacja w tle będzie najważniejsza.
  • Sygnalizowanie testu porównawczego makr i wskaźników Google Play, gdy aplikacja powinna być w pełni pobrana, aby umożliwić śledzenie jej wydajności.

Dodaliśmy 3 interfejsy API do tworzenia aktywności, aby ułatwić korzystanie z elementu FullyDrawnReporter z poszczególnych funkcji kompozycyjnych:

  • ReportDrawn oznacza, że funkcja kompozycyjna jest od razu gotowa do interakcji.
  • ReportDrawnWhen przyjmuje predykat (np. list.count > 0), aby wskazać, kiedy funkcja kompozycyjna jest gotowa do interakcji.
  • ReportDrawnAfter stosuje metodę zawieszania, która po zakończeniu oznacza gotowość do interakcji.

Aktualizacje zależności

Wersja 1.7.0-rc01

8 marca 2023 r.

Opublikowano androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01 i androidx.activity:activity-ktx:1.7.0-rc01. Wersja 1.7.0-rc01 zawiera te zatwierdzenia.

Aktualizacja zależności

Wersja 1.7.0-beta02

22 lutego 2023 roku

Opublikowano androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02 i androidx.activity:activity-ktx:1.7.0-beta02. Wersja 1.7.0-beta02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Działanie i dodatkowe czynności używane przez umowy PickVisualMedia i PickMultipleVisualMedia jako rozwiązanie zastępcze w sytuacji, gdy usługa MediaStore.ACTION_PICK_IMAGES jest niedostępna, są teraz stałymi publicznymi stałymi, które zapewniają stabilność interfejsu API producentom OEM i aplikacjom systemowym, które chcą zapewnić spójny interfejs selektora zdjęć. Implementacja tej kreacji zastępczej nadal ogranicza się tylko do aplikacji systemowych. (Icd320)

Wersja 1.7.0-beta01

8 lutego 2023 r.

Opublikowano androidx.activity:activity:1.7.0-beta01, androidx.activity:activity-compose:1.7.0-beta01 i androidx.activity:activity-ktx:1.7.0-beta01. Wersja 1.7.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • IntentSenderRequest.Builder.setFlags() umożliwia teraz ustawienie wielu flag z Intent, a nie tylko jednej. (Iac04c)

Poprawki błędów

  • Zastępcza wartość PickVisualMedia, która pojawia się, gdy selektor zdjęć jest niedostępny, prawidłowo ogranicza obsługę do aplikacji zainstalowanych w obrazie systemu urządzenia. (If8ae6)

Konwersje Kotlin

  • ActivityResultRegistryOwner jest teraz napisany w Kotlin. Jest to niekompatybilna zmiana źródła dla tych klas napisanych w Kotlin. Zamiast implementować poprzednią funkcję getActivityResultRegistry(), musisz teraz zastąpić właściwość activityResultRegistry. (I0b00e).
  • OnBackPressedDispatcherOwner jest teraz napisany w Kotlin. Jest to niekompatybilna zmiana źródła dla tych klas napisanych w Kotlin. Zamiast implementować poprzednią funkcję getOnBackPressedDispatcher, musisz teraz zastąpić właściwość onBackPressedDispatcher. (Ia277d)
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest i OnBackPressedDispatcher są teraz w języku Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)

Wersja 1.7.0-alfa04

25 stycznia 2023 r.

Opublikowano androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04 i androidx.activity:activity-ktx:1.7.0-alpha04. Wersja 1.7.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • Umowy dotyczące wyników związanych z aktywnością w usługach PickVisualMedia i PickMultipleVisualMedia będą teraz korzystać z selektora zdjęć udostępnianego w Usługach Google Play w przypadkach, gdy system Android dostarczył selektor zdjęć (np. MediaStore.ACTION_PICK_IMAGES) jest niedostępna. Interfejs API isPhotoPickerAvailable(), który wykrywa tylko selektor zdjęć dostarczany przez system Android, został wycofany. Zaleca się użycie nowego interfejsu API isPhotoPickerAvailable(Context), który będzie dostępny, gdy dostępny będzie selektor zdjęć. (I55be6)

Wersja 1.7.0-alfa03

11 stycznia 2023 r.

Opublikowano androidx.activity:activity:1.7.0-alpha03, androidx.activity:activity-compose:1.7.0-alpha03 i androidx.activity:activity-ktx:1.7.0-alpha03. Wersja 1.7.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • ComponentDialog implementuje teraz SavedStateRegistryOwner i ma dostęp do własnego SavedStateRegistry oraz ustawia SavedStateRegistryOwner dla swojego drzewa ViewTree. Można teraz korzystać z Jetpack Compose w obiekcie ComponentDialog, ponieważ spełnia on zarówno wymagania LifecycleOwner, jak i SavedStateRegistryOwner dołączone do Window przez wymagania interfejsów ViewTree API. (Idca17, I73468 b/261162296)

Zmiany w interfejsie API

  • Dodano element kompozycyjny ReportDrawn, który od razu oznacza aktywność jako gotową do wywołania reportFullyDrawn. (Ic5b14, b/259687964)

Konwersje Kotlin

  • Klasy ActvitiyResultCallback i OnBackPressedCallback zostały przekonwertowane do formatu Kotlin przy zachowaniu zgodności źródła i plików binarnych. (Ifc5e5, Ide1b0, b/257291701)

Wersja 1.7.0-alfa02

24 października 2022 r.

Opublikowano androidx.activity:activity:1.7.0-alpha02, androidx.activity:activity-compose:1.7.0-alpha02 i androidx.activity:activity-ktx:1.7.0-alpha02. Wersja 1.7.0-alpha02 zawiera te zatwierdzenia.

Poprawki błędów

  • Od aktywności 1.6.1: usunięto problem z umową dotyczącą wyniku aktywności w PickMultipleVisualMedia nie uruchamianą na urządzeniach z Androidem R w przypadku korzystania z wartości domyślnej maxItems. (Ie2776, b/249182130)

Wersja 1.7.0-alfa01

5 października 2022 r.

Opublikowano androidx.activity:activity:1.7.0-alpha01, androidx.activity:activity-compose:1.7.0-alpha01 i androidx.activity:activity-ktx:1.7.0-alpha01. Wersja 1.7.0-alpha01 zawiera te zatwierdzenia.

Interfejsy API FullyDrawnReporter

ComponentActivity udostępnia teraz wystąpienie FullyDrawnReporter, które umożliwia wielu komponentom raportowanie, gdy są gotowe do interakcji. ComponentActivity poczeka na zakończenie działania wszystkich komponentów, zanim zadzwoni w Twoim imieniu pod numer reportFullyDrawn(). Te interfejsy API spełniają wymagania dotyczące czasu i nie muszą być wywoływane w ramach wywołania onDraw.

Zalecamy włączenie tych interfejsów API:

  • Sygnalizowanie środowiska wykonawczego Androida po zakończeniu uruchamiania, aby zapewnić uwzględnienie całego kodu podczas wieloklatkowej sekwencji uruchamiania i sprawić, że kompilacja w tle będzie najważniejsza.
  • Sygnalizowanie testu porównawczego makr i wskaźników Google Play, gdy aplikacja powinna być w pełni pobrana, aby umożliwić śledzenie jej wydajności.

Aby ułatwić korzystanie z elementu FullyDrawnReporter z poszczególnych elementów kompozycyjnych, dodaliśmy 2 interfejsy API do tworzenia aktywności:

  • ReportDrawnWhen przyjmuje predykat (np. list.count > 0), aby wskazać, kiedy funkcja kompozycyjna jest gotowa do interakcji.
  • ReportDrawnAfter stosuje metodę zawieszania, która po zakończeniu oznacza gotowość do interakcji.

Wersja 1.6.1

Wersja 1.6.1

24 października 2022 r.

Opublikowano androidx.activity:activity:1.6.1, androidx.activity:activity-compose:1.6.1 i androidx.activity:activity-ktx:1.6.1. Wersja 1.6.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że umowa dotycząca wyniku aktywności w PickMultipleVisualMedia nie była uruchamiana na urządzeniach z Androidem R w przypadku korzystania z wartości domyślnej maxItems. (Ie2776, b/249182130)

Wersja 1.6.0

Wersja 1.6.0

21 września 2022 r.

Opublikowano androidx.activity:activity:1.6.0, androidx.activity:activity-compose:1.6.0 i androidx.activity:activity-ktx:1.6.0. Wersja 1.6.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.5.0

  • Dodaliśmy ActivityResultContracts.PickVisualMedia i ActivityResultContracts.PickMultipleVisualMedia, aby zapewnić zgodną wstecznie umowę, która korzysta z MediaStore.ACTION_PICK_IMAGES, gdy selektor zdjęć jest dostępny, i Intent.ACTION_OPEN_DOCUMENT, gdy jest niedostępny.
  • Zintegrowaliśmy pakiet OnBackInvokedCallback w Androidzie 13 z usługą OnBackPressedDispatchers zapewnianą przez ComponentActivity i ComponentDialog. Dzięki temu wszystkie interfejsy API oparte na OnBackPressedDispatcher będą działać po włączeniu przewidywanego gestu wstecz.

Wersja 1.6.0-rc02

7 września 2022 roku

Opublikowano androidx.activity:activity:1.6.0-rc02, androidx.activity:activity-compose:1.6.0-rc02 i androidx.activity:activity-ktx:1.6.0-rc02. Wersja 1.6.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • OnBackPressedDispatcher rejestruje teraz OnBackInvokedCallback za pomocą PRIORITY_DEFAULT zamiast PRIORITY_OVERLAY. (I3901f)
  • Klasy, które rozszerzają zakres ComponentActivity, będą teraz zawsze miały wysyłane oba wywołania zwrotne onMultiWindowModeChanged(). (Ic4d85)
  • ActivityResultRegistry nie będzie już zwracać wyniku do ActivityResultCallback, jeśli wywołanie launch zwróci jakiekolwiek wywołanie Exception, a wywołanie zwrotne zostało zarejestrowane bez LifecycleOwner. (Ia7ff7, b/238350794)
  • ComponentActivity będzie teraz prawidłowo wysyłać wywołania menu bez konieczności wywoływania superfunkcji w Twojej aktywności. (Ie33c5, b/238057118)

Aktualizacja zależności

Wersja 1.6.0-rc01

24 sierpnia 2022 r.

Opublikowano androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01 i androidx.activity:activity-ktx:1.6.0-rc01. Wersja 1.6.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Inicjowanie pakietu SDK OnBackPressedDispatcher nie będzie już powodować wywoływania ClassVerificationError w przypadku korzystania z pakietu SDK w wersji starszej niż 33. (Ic32e1).
  • Klasy, które zastępują wywołanie zwrotne onPictureInPictureModeChanged() klasy ComponentActivity, będą teraz zawsze wysyłane do tych klas. (Ib7fdb)

Wersja 1.6.0-beta01

10 sierpnia 2022 r.

Opublikowano androidx.activity:activity:1.6.0-beta01, androidx.activity:activity-compose:1.6.0-beta01 i androidx.activity:activity-ktx:1.6.0-beta01. Wersja 1.6.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Oznaczono wycofane metody startActivityForResult i startIntentSenderForResult w ComponentActivity o wartości @NonNull, ponieważ przejście na null zawsze skutkuje awarią. (Id2a25, b/231476082)

Poprawki błędów

  • Z aktywności 1.5.1: ActivityResultRegistry nie będzie już zwracać wyniku do ActivityResultCallback, jeśli wywołanie launch zwróci jakiekolwiek dane Exception, a wywołanie zwrotne zostało zarejestrowane bez parametru LifecycleOwner. (Ia7ff7, b/238350794)
  • Od aktywności 1.5.1: ComponentActivity będzie teraz prawidłowo wysyłać wywołania menu do onPrepareOptionMenu(), onCreateOptionsMenu() i onOptionsItemSelected() zastąpień bez konieczności wywoływania funkcji super. (Ie33c5, b/238057118)

Aktualizacja zależności

Wersja 1.6.0-alfa05

15 czerwca 2022 r.

Opublikowano androidx.activity:activity:1.6.0-alpha05, androidx.activity:activity-compose:1.6.0-alpha05 i androidx.activity:activity-ktx:1.6.0-alpha05. Wersja 1.6.0-alfa05 została opracowana w prywatnej gałęzi przedpremierowej i nie ma publicznych zatwierdzeń.

Zmiany w interfejsie API

  • minCompileSdk ma teraz wartość 33, aby zapewnić zgodność z pakietem SDK Tiramisu w wersji beta 3

Poprawki błędów

  • Rozwiązaliśmy problem z awarią na starszych urządzeniach podczas sprawdzania rozszerzenia pakietu SDK dla pakietu PickVisualMedia ActivityResultContract, dzięki czemu powinien on teraz działać z ACTION_OPEN_DOCUMENT na urządzeniach z Androidem 10 lub starszym.

Wersja 1.6.0-alfa04

18 maja 2022 r.

Opublikowano androidx.activity:activity:1.6.0-alpha04 i androidx.activity:activity-ktx:1.6.0-alpha04.

Poprawki błędów

  • Naprawiono błąd w PickVisualMediaRequest, który powodował, że próba utworzenia żądania za pomocą konstruktora lub funkcji Kotlin najwyższego poziomu skutkowała przepełnieniem stosu.
  • Aplikacja OnBackInvokedCallback w wersji deweloperskiej Androida 13 w wersji beta 2 została zintegrowana z platformą OnBackPressedDispatcher dostarczaną przez ComponentDialog. Dzięki temu wszystkie interfejsy API oparte na OnBackPressedDispatcher będą działać przy włączaniu gestu przewidywania tyłu.

Wersja 1.6.0-alfa03

27 kwietnia 2022 r.

Opublikowano androidx.activity:activity:1.6.0-alpha03, androidx.activity:activity-compose:1.6.0-alpha03 i androidx.activity:activity-ktx:1.6.0-alpha03.

  • Uwaga: ta wersja zostanie skompilowana tylko z pakietem SDK w wersji beta 1 dla programistów Androida 13.

Nowe funkcje

  • Dodaliśmy ActivityResultContracts.PickVisualMedia i ActivityResultContracts.PickMultipleVisualMedia, aby zapewnić zgodną wstecznie umowę, która korzysta z MediaStore.ACTION_PICK_IMAGES, gdy selektor zdjęć jest dostępny, i Intent.ACTION_OPEN_DOCUMENT, gdy jest niedostępny.
  • Zintegrowaliśmy interfejs OnBackInvokedCallback w wersji deweloperskiej Androida 13 w wersji beta 1 z oprogramowaniem OnBackPressedDispatcher dostarczanym przez ComponentActivity. Dzięki temu wszystkie interfejsy API oparte na OnBackPressedDispatcher będą działać przy włączaniu gestu przewidywania tyłu.

Wersja 1.6.0-alfa01

23 marca 2022 r.

Opublikowano androidx.activity:activity:1.6.0-alpha01, androidx.activity:activity-compose:1.6.0-alpha01 i androidx.activity:activity-ktx:1.6.0-alpha01.

  • Uwaga: ta wersja skompilowa się tylko z pakietem Android 13 Developer Preview 2 SDK.

Nowe funkcje

  • Zmiany wprowadzone w wersji testowej 2 dla programistów Androida 13 zostały zintegrowane z ComponentActivity.

Wersja 1.5.1

Wersja 1.5.1

27 lipca 2022 roku

Opublikowano androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1 i androidx.activity:activity-ktx:1.5.1. Wersja 1.5.1 zawiera te zatwierdzenia.

Poprawki błędów

  • ActivityResultRegistry nie będzie już zwracać wyniku do ActivityResultCallback, gdy wywołanie launch() zwróci jakiekolwiek wywołanie Exception, a wywołanie zwrotne zostało zarejestrowane bez LifecycleOwner. (Ia7ff7, b/238350794)

  • ComponentActivity będzie teraz prawidłowo wysyłać wywołania menu do onPrepareOptionMenu(), onCreateOptionsMenu() i onOptionsItemSelected() zastąpień bez konieczności wywoływania funkcji super. (Ie33c5, b/238057118)

Aktualizacja zależności

Wersja 1.5.0

Wersja 1.5.0

29 czerwca 2022 r.

Opublikowano androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0 i androidx.activity:activity-ktx:1.5.0. Wersja 1.5.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.4.0

  • KomponentDialogComponentDialog to podklasa klasy Dialog zawierająca element OnBackPressedDispatcher, który zostanie wywołany po naciśnięciu systemowego przycisku Wstecz i pojawi się okno. Co ważne, ta podklasa ustawia też ViewTreeOnBackPressedDispatcherOwner, co pozwala wyświetlać ogólny sposób pobierania prawidłowego dyspozytora niezależnie od tego, czy istnieje on w ComponentActivity czy ComponentDialog.
  • Interfejsy wywołania zwrotnegoComponentActivity implementuje teraz zestaw modułowych interfejsów wywołania zwrotnego, których można używać zamiast wywołań zwrotnych Activity. Te interfejsy to: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider
  • Integracja dodatku do tworzeniaComponentActivity ma teraz możliwość dostarczania bezstanowego elementu ViewModelProvider.Factory za pomocą funkcji CreationExtras w cyklu życia 2.5.0.

Inne zmiany

  • Konstruktor bez parametrów dla elementu ActivityResultContracts.CreateDocument został wycofany i zastąpiony nowym konstruktorem, który korzysta z konkretnego typu MIME (np. „image/png”), co jest wymagane przez zasadę Intent.ACTION_CREATE_DOCUMENT.

Wersja 1.5.0-rc01

11 maja 2022 roku

Wersje androidx.activity:activity:1.5.0-rc01, androidx.activity:activity-compose:1.5.0-rc01 i androidx.activity:activity-ktx:1.5.0-rc01 zostały opublikowane bez zmian od wersji 1.5.0-beta01. Wersja 1.5.0-rc01 zawiera te zatwierdzenia.

Wersja 1.5.0-beta01

20 kwietnia 2022 r.

Opublikowano androidx.activity:activity:1.5.0-beta01, androidx.activity:activity-compose:1.5.0-beta01 i androidx.activity:activity-ktx:1.5.0-beta01. Wersja 1.5.0-beta01 zawiera te zatwierdzenia.

Aktualizacje zależności

Wersja 1.5.0-alfa05

6 kwietnia 2022 roku

Opublikowano androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05 i androidx.activity:activity-ktx:1.5.0-alpha05. Wersja 1.5.0-alpha05 zawiera te zatwierdzenia.

Poprawki błędów

  • Funkcja onPanelClosed() w przeglądarce ComponentActivity wywołuje teraz także funkcję Super onPanelClosed(), naprawiając problem, który uniemożliwia wywołanie metody onContextMenuClosed. (Ib6f77)

Wersja 1.5.0-alfa04

23 marca 2022 r.

Opublikowano androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04 i androidx.activity:activity-ktx:1.5.0-alpha04. Wersja 1.5.0-alpha04 zawiera te zatwierdzenia.

Poprawki błędów

  • SavedStateViewFactory obsługuje teraz użycie CreationExtras, nawet jeśli zainicjowano go za pomocą SavedStateRegistryOwner. W przypadku podania dodatków zainicjowane argumenty są ignorowane. (I6c43b, b/224844583)

Wersja 1.5.0-alfa03

23 lutego 2022 r.

Opublikowano androidx.activity:activity:1.5.0-alpha03, androidx.activity:activity-compose:1.5.0-alpha03 i androidx.activity:activity-ktx:1.5.0-alpha03. Wersja 1.5.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Możesz teraz przekazywać CreationExtras do funkcji by viewModels() aktywności (I6a3e6, b/217600303)

Wersja 1.5.0-alfa02

9 lutego 2022 r.

Opublikowano androidx.activity:activity:1.5.0-alpha02, androidx.activity:activity-compose:1.5.0-alpha02 i androidx.activity:activity-ktx:1.5.0-alpha02. Wersja 1.5.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • ComponentActivity implementuje teraz interfejs OnPictureInPictureModeChangedProvider, aby umożliwić dowolnemu komponentowi odbieranie zdarzeń zmiany trybu obrazu w obrazie. (I9f567)
  • ComponentActivity implementuje teraz interfejs OnMultiWindowModeChangedProvider, aby umożliwić dowolnym komponentom otrzymywanie zdarzeń zmiany trybu wielu okien. (I62d91)

Wersja 1.5.0-alfa01

26 stycznia 2022 r.

Opublikowano androidx.activity:activity:1.5.0-alpha01, androidx.activity:activity-compose:1.5.0-alpha01 i androidx.activity:activity-ktx:1.5.0-alpha01. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • ComponentActivity integruje się teraz z funkcją ViewModel CreationExtras w ramach cyklu życia 2.5.0-alpha01. (Ie7e00, b/207012584)
  • Dodano ComponentDialog podklasę Dialog zawierającej element OnBackPressedDispatcher, który jest wywoływany po naciśnięciu systemowego przycisku Wstecz, gdy pojawi się okno. Co ważne, ta podklasa ustawia też właściwość ViewTreeOnBackPressedDispatcherOwner, co umożliwia widokom ogólny sposób pobierania prawidłowego dyspozytora niezależnie od tego, czy znajduje się on w obiekcie ComponentActivity czy ComponentDialog. (I8a1bc)
  • ComponentActivity implementuje teraz nowy interfejs OnNewIntentProvider, aby umożliwić odbieranie tych zdarzeń wszystkim komponentom. (If1f8b)
  • ComponentActivity implementuje teraz nowy interfejs OnConfigurationChangedProvider, aby umożliwić odbieranie tych zdarzeń wszystkim komponentom. (If623b)
  • ComponentActivity implementuje teraz nowy interfejs OnTrimMemoryProvider, który umożliwia dowolnemu komponentowi odbieranie tych zdarzeń. (Ia9295)

Zmiany w interfejsie API

  • Konstruktor bez parametrów dla właściwości ActivityResultContracts.CreateDocument został wycofany i zastąpiony nowym konstruktorem, który korzysta z konkretnego typu MIME (np. "image/png") zgodnie z wymaganiami Intent.ACTION_CREATE_DOCUMENT. (I2bec6)
  • Obiekt OnBackPressedDispatcherOwner powiązany z widokiem danych można teraz pobrać za pomocą ViewTreeOnBackPressedDispatcherOwner, zamiast polegać na przesyłaniu Context. (I74685)

Poprawki błędów

  • Naprawiliśmy awarię, która wystąpiła podczas uzyskiwania dostępu do ViewModel po raz pierwszy z wywołania zwrotnego registerForActivityResult() lub wywołań zwrotnych do LifecycleObserver dodanego w ramach init ComponentActivity. (Ife83f)

Wersja 1.4.0

Wersja 1.4.0

27 października 2021 roku

Opublikowano androidx.activity:activity:1.4.0, androidx.activity:activity-compose:1.4.0 i androidx.activity:activity-ktx:1.4.0. Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.3.0

  • W AndroidzieX ComponentActivity jest teraz zaimplementowany interfejs MenuHost. Dzięki temu każdy komponent może dodawać pozycje menu do funkcji ActionBar przez dodanie do działania wystąpienia MenuProvider. Każdy element MenuProvider można opcjonalnie dodać z elementem Lifecycle, który będzie automatycznie kontrolować widoczność tych pozycji menu na podstawie stanu Lifecycle i usuwać MenuProvider po zniszczeniu elementu Lifecycle.
  • Klasa ActivityResultContract została przepisana w Kotlin, aby deweloperzy tworzący niestandardowe umowy w Kotlin mogli zdefiniować prawidłową wartość null dla klas danych wejściowych i wyjściowych.
  • Klasa ActivityResultContracts i jej umowy zostały przepisane w Kotlin, aby zapewnić prawidłową wartość null.

Wersja 1.4.0-rc01

13 października 2021 r.

Opublikowano androidx.activity:activity:1.4.0-rc01, androidx.activity:activity-compose:1.4.0-rc01 i androidx.activity:activity-ktx:1.4.0-rc01. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • ActivityResultRegistry nie będzie już zwracać wyniku do interfejsu ActivityResultCallback, gdy wywołanie launch zwróci jakiekolwiek wywołanie Exception. (If4f91, b/200845664)

Wersja 1.4.0-beta01

29 września 2021 r.

Opublikowano androidx.activity:activity:1.4.0-beta01, androidx.activity:activity-compose:1.4.0-beta01 i androidx.activity:activity-ktx:1.4.0-beta01. Wersja 1.4.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Naprawiliśmy typ danych ActivityResultContracts.OpenMultipleDocuments i ActivityResultContracts.GetMultipleContents, które spowodowały użycie typu wyjściowego List<? extends Uri> podczas korzystania z kodu w języku programowania Java. (If71de)
  • Stałe publiczne w klasach ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult i ActivityResultContracts.RequestMultiplePermissions są teraz dostępne podczas korzystania z Kotlin za pomocą ich publicznych obiektów Companion. (Aosp/1832555)

Aktualizacje dokumentacji

  • Komunikat o wycofaniu interfejsów API jest teraz obsługiwany przez interfejsy API wyników związane z aktywnością (startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions i onRequestPermissionsResult) i zawiera więcej szczegółów. (CCE80F)

Wersja 1.4.0-alfa02

15 września 2021 r.

Opublikowano androidx.activity:activity:1.4.0-alpha02, androidx.activity:activity-compose:1.4.0-alpha02 i androidx.activity:activity-ktx:1.4.0-alpha02. Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • Artefakt activity-compose zawiera teraz błąd lintowania LaunchDuringComposition, który uniemożliwia wywołanie metody launch elementu ActivityResultLauncher w ramach kompozycji, ponieważ kompozycja nie powinna zawierać efektów ubocznych. Użyj interfejsów API do obsługi efektów ubocznych. (7c2bbe, b/191347220)

Zmiany w interfejsie API

  • Klasa ActivityResultContract została napisana w Kotlin, aby deweloperzy piszący niestandardowe umowy w Kotlin mogli definiować prawidłową wartość null klas danych wejściowych i wyjściowych. (I8a8f5)
  • Klasa ActivityResultContracts i jej umowy zostały napisane w Kotlin, aby zapewnić prawidłową wartość null. (I69802)

Wersja 1.4.0-alfa01

1 września 2021 roku

Opublikowano androidx.activity:activity:1.4.0-alpha01, androidx.activity:activity-compose:1.4.0-alpha01 i androidx.activity:activity-ktx:1.4.0-alpha01. Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • AndroidX ComponentActivity korzysta teraz z interfejsu MenuHost. Dzięki temu każdy komponent może dodawać pozycje menu do funkcji ActionBar przez dodanie do działania wystąpienia MenuProvider. Każdy element MenuProvider można opcjonalnie dodać z elementem Lifecycle, który będzie automatycznie kontrolować widoczność tych pozycji menu na podstawie stanu Lifecycle i usuwać MenuProvider po zniszczeniu elementu Lifecycle. (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)
  }

Zmiany w działaniu

  • ActivityResultRegistry zwróci teraz błąd IllegalStateException przy próbie wywołania metody launch() na urządzeniu ActivityResultLauncher, które nie jest zarejestrowane lub zostało wyrejestrowane. (Ida75d, b/192567522)

Wkład z zewnątrz

  • Dziękujemy dmitrilc za poprawienie literówki w dokumentacji ActivityResult. (#221)

Wersja 1.3.1

Wersja 1.3.1

4 sierpnia 2021 r.

Opublikowano androidx.activity:activity:1.3.1, androidx.activity:activity-compose:1.3.1 i androidx.activity:activity-ktx:1.3.1. Wersja 1.3.1 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Aktywność zależy teraz od Kotlin 1.5.21.
  • Tworzenie aktywności zależy teraz od funkcji Utwórz 1.0.1.

Wersja 1.3.0

Wersja 1.3.0

28 lipca 2021 roku

Opublikowano androidx.activity:activity:1.3.0, androidx.activity:activity-compose:1.3.0 i androidx.activity:activity-ktx:1.3.0. Wersja 1.3.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.2.0

  • Artefakt tworzenia aktywności – artefakt activity-compose zapewnia metodę rozszerzenia setContent służącą do hostowania interfejsu Jetpack Compose w aktywności i tworzenie konkretnych kodów na potrzeby interakcji z interfejsami API ComponentActivity na potrzeby obsługi przycisku Wstecz w systemie oraz interfejsów API wyniku aktywności. Więcej informacji znajdziesz w dokumentacji.
  • Umowa CaptureVideoCaptureVideo ActivityResultContract zastępuje wycofaną już umowę TakeVideo i zwraca wartość logiczną oznaczającą sukces w wielu aplikacjach aparatu.
  • Śledzenie widoku obrazu w obrazie – użytkownicy activity-ktx mogą teraz korzystać z metody rozszerzenia trackPipAnimationHintView w Activity, aby automatycznie ponownie kompilować PictureInPictureParams z nową pozycją widoku, gdy zmienia on swoje położenie względem okna.

Wersja 1.3.0-rc02

14 lipca 2021 roku

Opublikowano androidx.activity:activity:1.3.0-rc02, androidx.activity:activity-compose:1.3.0-rc02 i androidx.activity:activity-ktx:1.3.0-rc02. Wersja 1.3.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Wywołania zwrotne ActivityResultRegistry są teraz prawidłowo zapisane i przywracane, dzięki czemu nie są one zduplikowane w zapisanym stanie. (I97816, b/191893160)

Wersja 1.3.0-rc01

1 lipca 2021 r.

androidx.activity:activity:1.3.0-rc01, androidx.activity:activity-compose:1.3.0-rc01 i androidx.activity:activity-ktx:1.3.0-rc01 zostały opublikowane bez zmian z 1.3.0-beta02. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.

Wersja 1.3.0-beta02

16 czerwca 2021 r.

Opublikowano androidx.activity:activity:1.3.0-beta02, androidx.activity:activity-compose:1.3.0-beta02 i androidx.activity:activity-ktx:1.3.0-beta02. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.

Zaktualizowano tabelę activity-compose, aby była zgodna z opcją Utwórz 1.0.0-beta09. W androidx.compose.ui:ui-test-junit4 jest teraz zależność czasu kompilacji activity-compose.

Wersja 1.3.0-beta01

2 czerwca 2021 r.

Opublikowano androidx.activity:activity:1.3.0-beta01, androidx.activity:activity-compose:1.3.0-beta01 i androidx.activity:activity-ktx:1.3.0-beta01. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wycofana wcześniej metoda @Composable registerForActivityResult() została usunięta. Użyj adresu rememberLauncherForActivityResult(). (Ic39d3)

Wersja 1.3.0-alfa08

18 maja 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha08, androidx.activity:activity-compose:1.3.0-alpha08 i androidx.activity:activity-ktx:1.3.0-alpha08. Wersja 1.3.0-alpha08 zawiera te zatwierdzenia.

Nowe funkcje

  • Nowa CaptureVideo ActivityResultContract zwraca do ActivityResultCallback wartość logiczną, która wskazuje, czy film został zapisany pod podanym identyfikatorem URI. Zastąpi to wycofaną już umowę TakeVideo, ponieważ aplikacje aparatu bardzo rzadko zwracały bitmapy, przez co wynik był nieprzydatny. (Ie21f2, b/185938070)
  • Dodano nowy interfejs API Activity#setPipAnimationHintView, aby aktualizować wskazówkę źródła parametru PipParams za każdym razem, gdy widok jest przenoszony. (I9063d)

Zmiany w interfejsie API

  • Funkcja rememberLauncherForActivityResult zwraca teraz program uruchamiający, który wycofuje funkcję unregister(). Rejestracja i wyrejestrowanie programu uruchamiającego są obsługiwane automatycznie przez rememberLauncherForActivityResult. (I2443e)

Zgodność z wiadomością

  • Funkcja androidx.activity:activity-compose:1.3.0-alpha08 jest zgodna tylko z funkcją Utwórz w wersji 1.0.0-beta07 i nowszych.

Wersja 1.3.0-alfa07

21 kwietnia 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha07, androidx.activity:activity-compose:1.3.0-alpha07 i androidx.activity:activity-ktx:1.3.0-alpha07. Wersja 1.3.0-alpha07 zawiera te zatwierdzenia.

Poprawki błędów

  • rememberLauncherForActivityResult zwraca teraz stabilne odwołanie do tej samej instancji ActivityResultLauncher, nawet jeśli umowa ulegnie zmianie w wyniku zmian kompozycji. (Id2d6d).
  • Korzystanie z niestabilnych wersji fragmentów powyżej 1.3.0 nie będzie już powodować zwracania fałszywie dodatniego błędu lintacyjnego sugerującego użycie interfejsu 1.3.0. (Aosp/1670206, b/184847092)

Wersja 1.3.0-alfa06

7 kwietnia 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha06, androidx.activity:activity-compose:1.3.0-alpha06 i androidx.activity:activity-ktx:1.3.0-alpha06. Wersja 1.3.0-alpha06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Nazwa interfejsu API registerForActivityResult() została zmieniona na rememberLauncherForActivityResult(), aby lepiej wskazać, że zwrócony obiekt ActivityResultLauncher jest obiektem zarządzanym, który jest zapamiętywany w Twoim imieniu. Próba wywołania funkcji unregister zwracany plik ActivityResultLauncher spowoduje błąd. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.current i LocalActivityResultRegistryOwner.current zwracają teraz wartość null, aby lepiej określić, czy jest ona dostępna w bieżącej kompozycji. Interfejsy API, które wymagają tych interfejsów API, np. BackHandler i rememberLauncherForActivityResult(), będą teraz zwracać bardziej opisowy błąd, jeśli nie zostanie znaleziony właściciel interfejsu API. NavHost działa teraz nawet wtedy, gdy nie można znaleźć elementu OnBackPressedDispatcherOwner, tak jak ma to miejsce podczas wyświetlania podglądu elementu NavHost. (I7d8b4)

Poprawki błędów

  • BackHandler będzie teraz prawidłowo przechwytywać naciśnięcia wsteczne w sytuacji, gdy aktywność to STOPPED, a następnie znowu STARTED i dodano inne wywołania zwrotne z atrybutem właściciela cyklu życia. (I71de6, b/182284739)
  • Użycie rozszerzenia metody launch() z niestandardowym elementem ActivityResultContract, który zawiera dane wejściowe Unit, nie będzie już powodować błędu NullPointerException (I76282, b/183837954)

Wersja 1.3.0-alfa05

24 marca 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha05, androidx.activity:activity-compose:1.3.0-alpha05 i androidx.activity:activity-ktx:1.3.0-alpha05. Wersja 1.3.0-alpha05 zawiera te zatwierdzenia.

Poprawki błędów

  • Od Aktywności 1.2.2: usunięto błąd dotyczący sprawdzania lintowania InvalidFragmentVersionForActivityResult, który powodował fałszywe trafienie przy korzystaniu z fragmentu 1.3.1 lub nowszego. (I54da1, b/182388985)
  • Od aktywności 1.2.2: ComponentActivity unika teraz ClassNotFoundException podczas uruchamiania Intent z ActivityResultContract, które wcześniej były dodatkowe w innym Intent. (Ieff05, b/182906230)

Aktualizacje zależności

Wersja 1.3.0-alfa04

10 marca 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha04, androidx.activity:activity-compose:1.3.0-alpha04 i androidx.activity:activity-ktx:1.3.0-alpha04. Wersja 1.3.0-alpha04 zawiera te zatwierdzenia.

Poprawki błędów

  • Z aktywności 1.2.1: RequestMultiplePermissions zawsze zwraca wyniki dla wszystkich żądanych uprawnień, a nie tylko uprawnień, które nie zostały wcześniej przyznane. (I50bc3, b/180884668)
  • Z aktywności 1.2.1: ActivityResultRegistry zapewnia teraz, że trwające żądania launch() zwracają wyniki, nawet jeśli unregister(), a następnie register() ponownie z tym samym kluczem. (I9ef34, b/181267562)
  • Tworzenie aktywności nie dodaje już zależności testowych do ścieżki klasy środowiska wykonawczego. (Ifd8b3)
  • Naprawiono problem z funkcją BackHandler, który powodował, że wcześniej ustawiona lambda onBack była nadal używana po zmianie kompozycji. (8eb5eb)

Wersja 1.3.0-alfa03

24 lutego 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha03, androidx.activity:activity-compose:1.3.0-alpha03 i androidx.activity:activity-ktx:1.3.0-alpha03. Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Dostępna jest teraz funkcja registerForActivityResult kompozycyjna umożliwiająca uzyskiwanie wyników z działań w elementach kompozycyjnych. (Ia7851, b/172690553)

Zmiany w interfejsie API

  • LocalOnBackPressedDispatcherOwner zawiera teraz funkcje provides, których można używać z CompositionLocalProvider, zastępując interfejs API asProvidableCompositionLocal(). (I45d24)

Wersja 1.3.0-alfa02

10 lutego 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha02, androidx.activity:activity-compose:1.3.0-alpha02 i androidx.activity:activity-ktx:1.3.0-alpha02. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem z funkcją 1.3.0-alpha01 tworzenia aktywności, który powodował wyjątek NoSuchMethodError: No static method setContent podczas korzystania z funkcji Utwórz 1.0.0-alpha12. Wszyscy użytkownicy tworzenia wiadomości powinni korzystać z wersji 1.3.0-alpha02 i nowszych. (b/179911234)

Zmiany w interfejsie API

  • Interfejs API BackHandler może być używany, aby umożliwić obiektowi kompozycyjnemu przechwycenie systemowego przycisku Wstecz. (I58ed5, b/172154006)

Wersja 1.3.0-alfa01

10 lutego 2021 r.

Opublikowano androidx.activity:activity:1.3.0-alpha01, androidx.activity:activity-compose:1.3.0-alpha01 i androidx.activity:activity-ktx:1.3.0-alpha01. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Nowy artefakt activity-compose udostępnia określone pomocnicze elementy Jetpack Compose dla interfejsów API androidx.activity.
    • Element ComponentActivity.setContent został przeniesiony z androidx.compose.ui.platform.setContent do androidx.activity.compose.setContent. (Icf416)

Znane problemy

  • Korzystanie z elementu 1.3.0-alpha01 do tworzenia aktywności i bibliotek zależnych od niego, np. androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, spowoduje utworzenie wyjątku NoSuchMethodError: No static method setContent. (b/179911234)

Wersja 1.2.4

Wersja 1.2.4

21 lipca 2021 r.

Opublikowano androidx.activity:activity:1.2.4 i androidx.activity:activity-ktx:1.2.4. Wersja 1.2.4 zawiera te zatwierdzenia.

Poprawki błędów

  • Z aktywności 1.3.0-rc02: wywołania zwrotne ActivityResultRegistry są teraz prawidłowo zapisywane i przywracane, dzięki czemu wywołania zwrotne nie są duplikowane w ramach parametru savedState. (I97816, b/191893160)

Wersja 1.2.3

Wersja 1.2.3

5 maja 2021 roku

Opublikowano androidx.activity:activity:1.2.3 i androidx.activity:activity-ktx:1.2.3. Wersja 1.2.3 zawiera te zatwierdzenia.

Poprawki błędów

  • Użycie rozszerzenia metody launch() z niestandardowym elementem ActivityResultContract, który zawiera dane wejściowe Unit, nie będzie już powodować błędu NullPointerException (I76282, b/183837954)
  • Naprawiono błąd linta związany z fałszywym twierdzeniem informujący o użyciu fragmentu 1.3.0 podczas korzystania ze zrzutu, kompilacji alfa, beta lub RC dla nowszej wersji fragmentów kodu. (F4a57e, b/184847092)

Wersja 1.2.2

Wersja 1.2.2

24 marca 2021 r.

Opublikowano androidx.activity:activity:1.2.2 i androidx.activity:activity-ktx:1.2.2. Wersja 1.2.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd związany z sprawdzaniem linterów w InvalidFragmentVersionForActivityResult, który powodował fałszywe trafienie przy korzystaniu z fragmentu kodu w wersji 1.3.1 lub nowszej. (I54da1, b/182388985)
  • ComponentActivity omija teraz ClassNotFoundException przy uruchamianiu elementu Intent z elementu ActivityResultContract, który wcześniej był ustawiony jako dodatkowa w innym zadaniu Intent. (Ieff05, b/182906230)

Aktualizacje zależności

Wersja 1.2.1

Wersja 1.2.1

10 marca 2021 r.

Opublikowano androidx.activity:activity:1.2.1 i androidx.activity:activity-ktx:1.2.1. Wersja 1.2.1 zawiera te zatwierdzenia.

Poprawki błędów

  • RequestMultiplePermissions teraz zawsze zwraca wyniki dla wszystkich żądanych uprawnień, a nie tylko uprawnień, które nie zostały wcześniej przyznane. (I50bc3, b/180884668)
  • ActivityResultRegistry teraz dba o to, aby żądania launch() zwracały swoje wyniki, nawet jeśli unregister(), a następnie register() ponownie z tym samym kluczem. (I9ef34, b/181267562)

Wersja 1.2.0

Wersja 1.2.0

10 lutego 2021 r.

Opublikowano androidx.activity:activity:1.2.0 i androidx.activity:activity-ktx:1.2.0. Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

  • Interfejsy API wyników związanych z aktywnością: ComponentActivity udostępnia teraz ActivityResultRegistry, który umożliwia obsługę przepływów startActivityForResult()+onActivityResult() i requestPermissions()+onRequestPermissionsResult() bez zastępowania metod w aktywności lub fragmencie kodu. Zapewnia większe bezpieczeństwo typów za pomocą ActivityResultContract i zapewnia haki do testowania tych przepływów. Zobacz zaktualizowany Uzyskiwanie wyników z aktywności.
  • ContextAware: ComponentActivity implementuje teraz instancję ContextAware, dzięki czemu możesz dodać co najmniej 1 instancję OnContextAvailableListener, która otrzyma wywołanie zwrotne przed podstawowym Activity.onCreate().

    • Zawieszenie rozszerzenia Kotlin withContextAvailable() pozwala uruchomić blok niezawieszający, gdy kontekst stanie się dostępny i zwróci wynik.
    • Ten interfejs API jest używany przez FragmentActivity w fragmentie 1.3.0 do przywrócenia stanu FragmentManager. Wszystkie detektory dodane do podklas środowiska FragmentActivity będą działać później.
    • Ten interfejs API jest używany przez AppCompatActivity w systemie AppCompat w wersji 1.3.0-alpha02 lub nowszej. Wszystkie detektory dodane do podklas środowiska AppCompatActivity będą działać później.
  • Pomoc techniczna ViewTree: ComponentActivity obsługuje teraz interfejsy API ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) i ViewTreeSavedStateRegistryOwner dodane w cyklu życia 2.3.0 i SavedState 1.1.0, dzięki czemu w przypadku widoków dodanych bezpośrednio do ComponentActivity usługa zwróci aktywność jako LifecycleOwner, ViewModelStoreOwner i SavedStateRegistryOwner.

  • backport reportFullyDrawn() – metoda Activity obiektu reportFullyDrawn() została uaktualniona w wersji ComponentActivity, aby działała na wszystkich poziomach interfejsu API. Naprawiono awarię interfejsu API 19 i dodaliśmy śledzenie w przypadku tej metody na wszystkich poziomach interfejsu API.

Wersja 1.2.0-rc01

16 grudnia 2020 roku

Opublikowano androidx.activity:activity:1.2.0-rc01 i androidx.activity:activity-ktx:1.2.0-rc01. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • ActivityResultRegistry teraz zawsze przywraca dokładnie taki stan, który został zapisany. (Idd56b)
  • Dodaj śledzenie do ComponentActivity.reportFullyDrawn (Ic7632)

Wkład z zewnątrz

  • Metoda ComponentActivity zastępuje teraz reportFullyDrawn(), co umożliwia jej wywoływanie na wszystkich poziomach interfejsu API i naprawienie awarii w przypadku wywoływania tej metody bez odpowiednich uprawnień systemowych na urządzeniach z interfejsem API 19. Dziękuję, Simon Schiller! (b/163239764, #103)

Wersja 1.2.0-beta02

Grudzień 2, 2020

Opublikowano androidx.activity:activity:1.2.0-beta02 i androidx.activity:activity-ktx:1.2.0-beta02. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że interfejs Activity Result API nie czekał na wartość STARTED w ramach cyklu życia przed dostarczeniem wyników po zarejestrowaniu go za pomocą Lifecycle. (I109ea).

Wkład z zewnątrz

  • Zaktualizowaliśmy dokumentację elementu launch(), by wyraźnie wskazać, że może zgłosić błąd ActivityNotFoundException. Dziękuję, Michał Zieliński! (Aosp/1493580)

Wersja 1.2.0-beta01

1 października 2020 roku

Opublikowano androidx.activity:activity:1.2.0-beta01 i androidx.activity:activity-ktx:1.2.0-beta01. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Poprawki błędów

  • ActivityResultRegistry teraz losowo generuje liczby całkowite, aż znajdzie wartość, która nie zostanie przydzielona do użycia jako kod żądania register(). Zapobiega to potencjalnemu przepełnieniu liczby całkowitej spowodowanego zwiększeniem liczby kodów żądań. (b/168779518)

  • Obserwatorzy funkcji Lifecycle są prawidłowo usuwani podczas wywoływania funkcji unregister() na urządzeniu ActivityResultLauncher. (b/165608393)

Zmiany w działaniu

  • ActivityResultRegistry generuje teraz IllegalStateException podczas próby nawiązania połączenia z numerem register() przy użyciu urządzenia LifecycleOwner, którego Lifecycle dołączył się już do instancji STARTED. (b/165435866)

Aktualizacja dokumentacji

  • Dokumentacja ContextAware zawiera linki do LifecycleOwner, w których wyróżnione są wywołania zwrotne (Lifecycle) jako odpowiednie miejsce do tworzenia i zniszczenia zdarzeń. (Aosp/1414152)

Wersja 1.2.0-alfa08

19 sierpnia 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha08 i androidx.activity:activity-ktx:1.2.0-alpha08. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.

Nowe funkcje

  • ComponentActivity implementuje teraz instancję ContextAware, dzięki czemu możesz dodać co najmniej 1 instancję OnContextAvailableListener, która otrzyma wywołanie zwrotne przed podstawowym elementem Activity.onCreate(). (b/161390636)
    • Zawieszenie rozszerzenia Kotlin withContextAvailable() pozwala uruchomić blok niezawieszający, gdy kontekst stanie się dostępny i zwróci wynik. (I8290c)
    • Ten interfejs API jest używany przez FragmentActivity we fragmentie 1.3.0-alpha08 do przywrócenia stanu FragmentManager. Wszystkie detektory dodane do podklas środowiska FragmentActivity będą działać później. (I513da)
    • Ten interfejs API jest używany przez AppCompatActivity w AppCompat 1.3.0-alpha02. Wszystkie detektory dodane do podklas środowiska AppCompatActivity będą działać później. (I513da)

Poprawki błędów

  • Naprawiono błąd sprawdzania Lint (ActivityResultFragmentVersionDetector), który powodował awarię narzędzia w przypadku korzystania z linta w wersji 27.1.0 lub nowszej. (b/162155191)

Wersja 1.2.0-alfa07

22 lipca 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha07 i androidx.activity:activity-ktx:1.2.0-alpha07. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy nowe sprawdzanie lint InvalidFragmentVersionForActivityResult, które sprawdza, czy używasz fragmentu 1.3.0-alpha07 podczas korzystania z interfejsu Activity Result API. Pozwala to uniknąć awarii w czasie działania spowodowanych problemami dotyczącymi „nieprawidłowego kodu żądania” oraz niedziałających próśb o przyznanie uprawnień spowodowanych używaniem starszych wersji fragmentów kodu. (b/152554847)

Wkład z zewnątrz

  • Poprawiliśmy ArrayIndexOutOfBoundsException podczas analizowania wyników w przypadku umowy dotyczącej wyników aktywności w RequestPermission. (I8f9e3, b/161057605)

Wersja 1.2.0-alfa06

10 czerwca 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha06 i androidx.activity:activity-ktx:1.2.0-alpha06. Wersja 1.2.0-alpha06 zawiera te zatwierdzenia.

Nowe funkcje

  • Możesz teraz zdestrukturyzować klasę ActivityResult w kotlin, aby uzyskać bezpośredni dostęp do requestCode i intent. (b/157212935)
  • ActivityResultLauncher umożliwia teraz pobranie ActivityResultContract użytego do zarejestrowania programu uruchamiającego. (b/156875743)

Zmiany w interfejsie API

  • Zmiana powodująca niezgodność: nazwa metody invoke() w ActivityResultRegistry została zmieniona na onLaunch(). (b/157496491)
  • Jeśli nie zostanie zwrócony żaden wynik, umowa OpenMultipleDocuments zwraca teraz pustą listę zamiast null do zarejestrowanego wywołania zwrotnego. (b/157348014)

Wersja 1.2.0-alfa05

20 maja 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha05 i androidx.activity:activity-ktx:1.2.0-alpha05. Wersja 1.2.0-alpha05 zawiera te zatwierdzenia.

Nowe funkcje

Zmiany w interfejsie API

  • Umowa TakePicture zwraca teraz wartość boolean oznaczającą sukces, a nie miniaturę Bitmap, ponieważ ten tryb był bardzo rzadko obsługiwany przez aplikacje aparatu podczas zapisywania obrazu w podanym Uri. (b/154302879)
  • Rozszerzenia invoke() w domenie ActivityResultLauncher zostały usunięte, a zamiast tego użyto wprost funkcji launch(), aby lepiej wskazać, że są to operacje asynchroniczne. Rozszerzenia Kotlin dla launch zostały dodane do pakietu androidx.activity.result dla ActivityResultLauncher<Void> i ActivityResultLauncher<Unit>. Dzięki temu nie trzeba przekazywać odpowiednio parametru null lub Unit, powielając to działanie z poprzednich invoke() rozszerzeń. (Aosp/1304674, aosp/1304675)
  • Metody IntentSenderRequest.Builder dla metod setFlagsMask() i setFlagsValues() zostały połączone w jedną metodę setFlags(). (Aosp/1302111)

Poprawki błędów

  • Podczas rejestrowania obiektu ActivityResultCallback za pomocą metody LifecycleOwner rozwiązaliśmy problem, który powodował, że wywołanie zwrotne było aktywowane przed osiągnięciem stanu STARTED. (Aosp/1309744)

Zmiany w działaniu

  • ActivityResultRegistry generuje teraz kody żądań, zaczynając od 0xFFFF, a nie od 0, co uniemożliwia nakładanie się kodów startActivityForResult() lub requestPermissions() w aktywności. (Aosp/1302324)

Wersja 1.2.0-alfa04

29 kwietnia 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha04 i androidx.activity:activity-ktx:1.2.0-alpha04. Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy umowę, która może wywoływać metodę startIntentSenderForResult do interfejsów ActivityResult API. (b/153007517)

Zmiany w interfejsie API

  • Nazwa metody prepareCall() została zmieniona na registerForActivityResult(), zarówno w ComponentActivity tutaj, jak i w fragmentie 1.3.0-alpha04. (Aosp/1278717)
  • Zmieniliśmy nazwy umów GetContents, OpenDocuments i RequestPermissions na odpowiednio GetMultipleContents, OpenMultipleDocuments i RequestMultiplePermissions. (Aosp/1280161)
  • ComponentActivity implementuje teraz interfejs ActivityResultRegisteryOwner. (Aosp/1290888)
  • – Interfejsy API startActivityForResult()/onActivityResult() i onRequestPermissionsResult() w ComponentActivity zostały wycofane. Użyj interfejsów API wyników związanych z aktywnością. (b/154751887)

Poprawki błędów

  • Gdy korzystasz z umów GetMultipleContents i OpenMultipleDocuments i wybierasz pojedynczy element, jest on teraz prawidłowo zwracany do wywołania zwrotnego. (b/152941153)

Wersja 1.2.0-alfa03

1 kwietnia 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha03 i androidx.activity:activity-ktx:1.2.0-alpha03. Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Umowy TakeVideo, PickContact, GetContent, GetContents, OpenDocument, OpenDocuments, OpenDocumentTree i CreateDocument zostały dodane do zestawu gotowych umów dostępnych w ActivityResultContracts. (aosp/1262482, aosp/1266916, aosp/1268960)
  • Interfejsy API wyników działań obsługują teraz uruchamianie działania dla wyniku z opcjonalną funkcją ActivityOptionsCompat. (b/151860054)

Zmiany w interfejsie API

  • Umowa TakePicture pobiera teraz dane wejściowe Uri określające miejsce przechowywania obrazu. Nazwa poprzedniej umowy, która nie wymaga żadnych danych wejściowych, została zmieniona na TakePicturePreview. (Aosp/1262482)
  • Nazwa metody registerActivityResultCallback() w systemie ActivityResultRegistry została zmieniona na register(). (Aosp/1267621)
  • Nazwa metody dispose() w systemie ActivityResultLauncher została zmieniona na unregister(), a metoda unregisterResultCallback() w witrynie ActivityResultRegistry została usunięta. (Aosp/1267621)
  • Metoda createIntent() obiektu ActivityResultContact oprócz danych wejściowych używa teraz obiektu Context, aby umożliwić tworzenie jawnych intencji. (Aosp/1238800)
  • ActivityResultContract może teraz zastąpić regułę getSynchronousResult(), aby dostarczyć wynik bez wywoływania metody startActivityForResult. Jest on używany w umowach RequestPermission i RequestPermissions do prawidłowego określania stanu „Przyznano”, jeśli wymagane uprawnienia zostały już przyznane. (b/151110799)
  • Dostępna wcześniej umowa Dial została usunięta, ponieważ usługa Intent nie powinna być używana z usługą startActivityForResult(). (Aosp/1266916)
  • Wiele z interfejsów API wyników związanych z aktywnością, które nie powinny być rozszerzane, ma teraz nazwę final. Obejmuje to metody getActivityResultRegistry(), metody prepareCall(), wszystkie metody ActivityResultRegistry oprócz invoke() oraz szereg umów domyślnych, które nie obsługują dodatków. (b/152439361)

Poprawki błędów

  • Poprawiliśmy błąd NullPointerException w funkcji ActivityResultRegistry, gdy próbowano dostarczyć wyniki wywołania zwrotnego, który nie został jeszcze ponownie zarejestrowany po zmianie konfiguracji. ActivityResultRegistry zatrzymuje teraz te wyniki oczekujące i dostarcza je po ponownym zarejestrowaniu wywołania zwrotnego. (b/152137004)

Wersja 1.2.0-alfa02

18 marca 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha02 i androidx.activity:activity-ktx:1.2.0-alpha02. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • ActivityResultRegistry: ComponentActivity udostępnia teraz ActivityResultRegistry, który umożliwia obsługę przepływów startActivityForResult()+onActivityResult() i requestPermissions()+onRequestPermissionsResult() bez zastępowania metod w aktywności lub fragmencie kodu, zwiększając bezpieczeństwo typów za pomocą ActivityResultContract i zapewnia haki do testowania tych przepływów. Zobacz zaktualizowany Uzyskiwanie wyników z aktywności. (b/125158199)

Wersja 1.2.0-alfa01

4 marca 2020 r.

Opublikowano androidx.activity:activity:1.2.0-alpha01 i androidx.activity:activity-ktx:1.2.0-alpha01. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy obsługę interfejsu API ViewTreeLifecycleOwner.get(View) w cyklu życia 2.3.0-alpha01, dzięki czemu w przypadku wszystkich widoków dodanych bezpośrednio do aktywności będzie on zwracał aktywność jako LifecycleOwner. (Aosp/1182955)

Poprawki błędów

  • Naprawiliśmy regresję wprowadzoną w aktywności 1.1.0 podczas uruchamiania na starszych wersjach platformy, w przypadku której onBackPressed() powodował(a) błąd IllegalStateException z powodu błędu w android.app.FragmentManager. (b/146290338)

Wersja 1.1.0

Wersja 1.1.0

22 stycznia 2020 r.

Aplikacja androidx.activity:activity:1.1.0 została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

  • Integracja z zapisanym stanem widoku modelu cyklu życia: SavedStateViewModelFactory jest teraz domyślną fabryką używaną w przypadku korzystania z by viewModels(), konstruktora ViewModelProvider lub ViewModelProviders.of() z klasą ComponentActivity lub jej podklasami.

Wersja 1.1.0-rc03

4 grudnia 2019

Opublikowano androidx.activity:activity:1.1.0-rc03 i androidx.activity:activity-ktx:1.1.0-rc03. Wersja 1.1.0-rc03 zawiera te zatwierdzenia.

Zmiany zależności

  • Aktywność zależy teraz od wartości 2.2.0-rc03 cyklu życia i metody SavedState w cyklu życia (1.0.0-rc03).

Wersja 1.1.0-rc02

7 listopada 2019 r.

Opublikowano androidx.activity:activity:1.1.0-rc02 i androidx.activity:activity-ktx:1.1.0-rc02. Wersja 1.1.0-rc02 zawiera te zatwierdzenia.

Zmiany zależności

  • Aktywność zależy teraz od cyklu życia 2.2.0-rc02.

Wersja 1.1.0-rc01

23 października 2019 r.

Wersje androidx.activity:activity:1.1.0-rc01 i androidx.activity:activity-ktx:1.1.0-rc01 zostały opublikowane bez zmian z 1.1.0-beta01. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Wersja 1.1.0-beta01

9 października 2019 r.

Opublikowano androidx.activity:activity:1.1.0-beta01 i androidx.activity:activity-ktx:1.1.0-beta01. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.

Zmiany zależności

  • Aktywność zależy teraz od stabilnej wersji SavedState 1.0.0.

Wersja 1.1.0-alfa03

5 września 2019 r.

Opublikowano androidx.activity:activity:1.1.0-alpha03 i androidx.activity:activity-ktx:1.1.0-alpha03. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Nowe funkcje

  • Aktywność zależy teraz od wersji stabilnej Core 1.1.0.

Poprawki błędów

Wersja 1.1.0-alfa02

7 sierpnia 2019 r.

Opublikowano androidx.activity:activity:1.1.0-alpha02 i androidx.activity:activity-ktx:1.1.0-alpha02. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Nowe funkcje

  • SavedStateViewModelFactory jest teraz domyślną fabryką używaną w przypadku by viewModels(), konstruktora ViewModelProvider lub ViewModelProviders.of() z ComponentActivity (b/135716331)

Wersja 1.1.0-alfa01

2 lipca 2019 r.

Opublikowano androidx.activity:activity:1.1.0-alpha01 i androidx.activity:activity-ktx:1.1.0-alpha01. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Nowe funkcje

  • activity zależy teraz od cyklu życia 2.2.0-alpha02. (Aosp/1007817)
  • activity-ktx dodał zależność do lifecycle-runtime-ktx. Nie musisz już dodawać jej bezpośrednio do zależności, gdy używasz activity-ktx lub bibliotek zależnych od activity-ktx (na przykład fragment-ktx). (aosp/987162)

Wersja 1.0.0

Wersja 1.0.0

5 września 2019 r.

Opublikowano androidx.activity:activity:1.0.0 i androidx.activity:activity-ktx:1.0.0. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Główne funkcje wersji 1.0.0

  • KomponentActivity: ComponentActivity służy jako nowa klasa bazowa dla FragmentActivity w fragmentie 1.1.0 i, jako rozszerzenie, AppCompatActivity w AppCompat 1.1.0.
  • activity-ktx: moduł activity-ktx zawiera rozszerzenie właściwości by viewModels Kotlin umożliwiające dostęp do modeli ViewModel. Ten moduł jest automatycznie dołączany, gdy dodasz element fragment-ktx z fragmentu 1.1.0.
  • OnBackPressedDispatcher: jako kompozycyjna alternatywa dla zastępowania onBackPressed() możesz teraz zarejestrować OnBackPressedCallback z dowolnego elementu LifecycleOwner (np. fragmentu) w celu przechwycenia zdarzeń systemowych przycisku Wstecz. Do parametru activity-ktx dodano lambda z odbiornikiem w wersji addCallback. Więcej informacji znajdziesz w artykule Udostępnianie dokumentacji niestandardowej nawigacji wstecz.
  • Wycofanie instancji onRetainCustomNonConfiguration: interfejs API onRetainCustomNonConfigurationInstance() i powiązane z nim interfejsy API getLastCustomNonConfigurationInstance() zostały wycofane. Zdecydowanie zalecamy użycie obiektu ViewModels do przechowywania stanu bez konfiguracji, ponieważ oferują one rozwiązanie kompozycyjne odpowiednie dla każdego elementu ViewModelStoreOwner, które wyraźnie określa własność zachowanych obiektów i udostępnia wywołanie zwrotne onCleared() do czyszczenia zasobów, gdy aktywność zostanie ostatecznie zniszczona.

Wersja 1.0.0-rc01

2 lipca 2019 r.

Wersje androidx.activity:activity:1.0.0-rc01 i androidx.activity:activity-ktx:1.0.0-rc01 zostały opublikowane bez zmian z 1.0.0-beta01. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Wersja 1.0.0-beta01

5 czerwca 2019 r.

Wersje androidx.activity::activity:1.0.0-beta01 i androidx.activity:activity-ktx:1.0.0-beta01 zostały opublikowane bez zmian z 1.0.0-alpha08. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Wersja 1.0.0-alfa08

7 maja 2019 r.

Opublikowano androidx.activity:activity:1.0.0-alpha08 i androidx.activity:activity-ktx:1.0.0-alpha08. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Zmiany w interfejsie API

  • Zmiana niezbędna: wcześniej wycofane metody addOnBackPressedCallback i removeOnBackPressedCallback w ComponentActivity zostały usunięte. aosp/953857
  • Metody setEnabled() i isEnabled() w metodzie OnBackPressedCallback są teraz ostateczne. b/131416833
  • Metoda remove() elementu OnBackPressedCallback jest teraz ostateczna. aosp/952720
  • OnBackPressedDispatcher zawiera teraz publiczne konstruktory, które pozwalają tworzyć własne instancje do testowania itp. aosp/953431
  • Pole onBackPressed() dla domeny ComponentActivity jest teraz wyraźnie oznaczone jako @MainThread aosp/952721

Poprawki błędów

  • Naprawiliśmy błąd ConcurrentModificationException podczas wywoływania funkcji remove() z poziomu metody handleOnBackPressed() elementu OnBackPressedCalback dodanego za pomocą metody LifecycleOwner. b/131765095

Wersja 1.0.0-alfa07

25 kwietnia 2019 r.

Opublikowano androidx.activity:activity:1.0.0-alpha07 i androidx.activity:activity-ktx:1.0.0-alpha07. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Zmiany w interfejsie API

Ta wersja wprowadza istotne zmiany w obsłudze interfejsu onBackPressed(). Więcej informacji znajdziesz w nowej dokumentacji dotyczącej niestandardowych tyłu.

  • Metody OnBackPressedCallback i OnBackPressedDispatcher zostały oznaczone jako @MainThread. (Aosp/943813)
  • Metoda handleOnBackPressed() nie zwraca już wartości boolean. Zamiast tego OnBackPressedCallback jest klasą abstrakcyjną, którą można włączyć lub wyłączyć. Wywołane będzie handleOnBackPressed() tylko wtedy, gdy nowa metoda isEnabled() zwróci wartość prawda, w której musisz użyć przycisku Wstecz. (Aosp/944518)
  • Metody addCallback obiektu OnBackPressedDispatcher nie zwracają już instancji Cancellable. OnBackPressedCallback zawiera teraz metodę remove(), która spełnia tę funkcję, co umożliwia wywołanie remove() w czasie handleOnBackPressed(). (Aosp/944519) (Aosp/946316)
  • Funkcja activity-ktx zawiera teraz wywołanie zwrotne o zakresie odbiorcy na potrzeby addCallback, które akceptuje lamdba z implementacją handleOnBackPressed() i ma dostęp do isEnabled i remove() (aosp/944520)

Wersja 1.0.0-alfa06

3 kwietnia 2019 r.

Opublikowano androidx.activity:activity:1.0.0-alpha06 i androidx.activity:activity-ktx:1.0.0-alpha06. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.

Zmiany w interfejsie API

  • Komponent CompatActivity zawiera teraz drugi konstruktor, który przyjmuje obiekt @LayoutRes int, co zastępuje poprzednie działanie adnotacji klasy AppCompatActivity z użyciem @ContentView. Ta metoda działa zarówno w modułach aplikacji, jak i bibliotece. (b/128352521)
  • Interfejsy API powiązane z OnBackPressedCallback w komponencie KomponentActivity zostały wycofane i zastąpione nową wersją OnBackPressedDispatcher, którą można pobrać za pomocą getOnBackPressedDispatcher(). (Aosp/922523)
  • Metody dodawania nowego elementu OnBackPressedCallback do obiektu OnBackPressedDispatcher zwracają teraz obiekt Cancellable, co pozwala na usunięcie wywołania zwrotnego bez konieczności bezpośredniego odwołania do OnBackPressedDispatcher. (Aosp/922523)
  • Dodanie elementu OnBackPressedCallback z powiązanym elementem LifecycleOwner skutkuje teraz dodaniem i usunięciem elementu OnBackPressedCallback w miarę rozpoczęcia i zatrzymania cyklu życia. (Aosp/922523)

Wersja 1.0.0-alfa05

13 marca 2019 r.

Zwolniono androidx.activity:activity:1.0.0-alpha05 i androidx.activity:activity-ktx:1.0.0-alpha05. Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.

Nowe funkcje

  • Wyszukiwania adnotacji @ContentView są teraz przechowywane w pamięci podręcznej (b/123709449)

Wersja 1.0.0-alfa04

30 stycznia 2019 r.

androidx.activity:activity 1.0.0-alpha04 i androidx.activity:activity-ktx 1.0.0-alpha04 zostali zwolnieni.

Nowe funkcje

  • Dodaliśmy obsługę adnotacji klasy @ContentView, która pozwala wskazać plik XML układu, który należy powiększyć zamiast używania setContentView(). (Aosp/837619)

Zmiany w interfejsie API

Poprawki błędów

  • Moduł activity korzysta teraz z wersji 2.1.0-alpha02 modelu ViewModel, aby dostosować go do zależności modułu activity-ktx.

Wersja 1.0.0-alfa03

17 grudnia 2018 r.

Aplikacja androidx.activity 1.0.0-alpha03 została zwolniona.

Nowe funkcje

  • Komponent KomponentActivity wdraża teraz BundleSavedStateRegistryOwner i korzysta z nowej biblioteki SavedState [aosp/815133]
  • Komponent KomponentActivity działa teraz na bazie błędu platformy Androida, który spowodowałby wyciek ostatniego zaznaczonego widoku z In-MethodManager [b/37122102]

Wersja 1.0.0-alfa02

3 grudnia 2018 r.

Zmiany w interfejsie API

Wersja 1.0.0-alfa01

5 listopada 2018 r.

androidx.activity 1.0.0-alpha01 wprowadza ComponentActivity, nową klasę bazową istniejących obiektów FragmentActivity i AppCompatActivity.

Nowe funkcje

  • Możesz teraz zarejestrować obiekt OnBackPressedCallback w addOnBackPressedCallback, aby otrzymywać wywołania zwrotne onBackPressed() bez konieczności zastępowania metody w swojej aktywności.
  • Dodano nowego delegata właściwości by viewModels() Kotlin do pobierania elementów ViewModel z ComponentActivity.
  • Oczekujące zdarzenia wejściowe (takie jak kliknięcia) są teraz anulowane w onStop().

Zmiany w interfejsie API

  • Implementacja LifecycleOwner i ViewModelStoreOwner została przeniesiona z FragmentActivity do ComponentActivity.
  • Interfejs onRetainCustomNonConfigurationInstance został wycofany. Typ ViewModel służy do przechowywania obiektów, które muszą przetrwać zmiany konfiguracji.