Aktywność
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
2 lipca 2025 r. | 1.10.1 | 1.11.0-rc01 | - | 1.12.0-alpha04 |
Deklarowanie zależności
Aby dodać zależność od Activity, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { def activity_version = "1.10.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.10.1" // 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ć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.12
Wersja 1.12.0-alpha04
2 lipca 2025 r.
androidx.activity:activity:1.12.0-alpha04
, androidx.activity:activity-compose:1.12.0-alpha04
i androidx.activity:activity-ktx:1.12.0-alpha04
są zwalniane. Wersja 1.12.0-alpha04 zawiera te zmiany.
Zmiany zależności
- Aktywność zależy teraz od NavigationEvent Alpha04
Wersja 1.12.0-alpha03
18 czerwca 2025 r.
androidx.activity:activity:1.12.0-alpha03
, androidx.activity:activity-compose:1.12.0-alpha03
i androidx.activity:activity-ktx:1.12.0-alpha03
są zwalniane. Wersja 1.12.0-alpha03 zawiera te zmiany.
Poprawki błędów
Zmienne
OnBackPressedDispatcher
iNavigationEventDispatcher
są teraz inicjowane z opóźnieniem wComponentActivity
. (I710e6)Rozwiązaliśmy problemy z
OnBackPressedDistpatcher
, które powodowały:- Tylko najnowszy dyspozytor
OnBackPressedCallback
został dodany do powiadomień o jego stanie włączenia (b/418715930). OnBackPressedDispatcher
usuwa nieprawidłowe wywołanie zwrotne podczas korzystania z funkcjiaddCallback
, która przyjmuje cykl życia. (b/422714753)OnBackPressedDispatcher.remove()
nie usuwa wszystkich wystąpień zarejestrowanegoOnBackPressedCallback
. (b/423024414)
- Tylko najnowszy dyspozytor
Wersja 1.12.0-alpha02
4 czerwca 2025 r.
androidx.activity:activity:1.12.0-alpha02
, androidx.activity:activity-compose:1.12.0-alpha02
i androidx.activity:activity-ktx:1.12.0-alpha02
są zwalniane. Wersja 1.12.0-alpha02 zawiera te commity.
Poprawki błędów
- Z NavigationEvent
1.0.0-alpha02
: naprawionoConcurrentModificationException
, który mógł wystąpić, gdy wywoływanoNavigationEventCallback.remove()
z powodu jednoczesnej modyfikacji wewnętrznej listy elementów zamykanych. (I63066)
Wersja 1.12.0-alpha01
20 maja 2025 r.
androidx.activity:activity:1.12.0-alpha01
, androidx.activity:activity-compose:1.12.0-alpha01
i androidx.activity:activity-ktx:1.12.0-alpha01
są zwalniane. Wersja 1.12.0-alpha01 zawiera te zmiany.
Nowe funkcje
ComponentActivity
iComponentDialog
zostały zintegrowane z NavigationEvent1.0.0-alpha01
za pomocą interfejsuNavigationEventDispatcherOwner
API. Możesz teraz pobraćNavigationEventDispatcher
zComponentActivity
za pomocą polanavigationEventDispatcher
. PonieważOnBackPressedDispatcher
został przepisany na podstawie nowej biblioteki, wszystkie poprzednie zastosowania powinny nadal działać prawidłowo. W przyszłości używajNavigationEventDispatcher
iNavigationEventCallback
. (Ib8eed, I6cc44, Ib7724, I9a0f7,b/412597031, b/415028038, b/412596729, b/412597140, b/412596012)
Wersja 1.11
Wersja 1.11.0-rc01
23 kwietnia 2025 r.
androidx.activity:activity:1.11.0-rc01
, androidx.activity:activity-compose:1.11.0-rc01
i androidx.activity:activity-ktx:1.11.0-rc01
są zwalniane. Wersja 1.11.0-rc01 zawiera te zmiany.
Wersja 1.11.0-beta01
9 kwietnia 2025 r.
androidx.activity:activity:1.11.0-beta01
, androidx.activity:activity-compose:1.11.0-beta01
i androidx.activity:activity-ktx:1.11.0-beta01
są zwalniane. Wersja 1.11.0-beta01 zawiera te zmiany.
Wersja 1.11.0-alpha02
26 marca 2025 r.
androidx.activity:activity:1.11.0-alpha02
, androidx.activity:activity-compose:1.11.0-alpha02
i androidx.activity:activity-ktx:1.11.0-alpha02
są zwalniane. Wersja 1.11.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Zintegrowaliśmy nowe funkcje
EDGE_NONE
iframeTimeMillis
z Androida 16 Beta03 zBackEventCompat
udostępnianym przez funkcjehandleOnBackStarted
ihandleOnBackProgressed
OnBackPressedCallback
.
Aktualizacje zależności
- Aktywność jest teraz kompilowana za pomocą interfejsu API w wersji 36. (I510e8, b/301910674)
Wersja 1.11.0-alpha01
12 marca 2025 r.
androidx.activity:activity:1.11.0-alpha01
, androidx.activity:activity-compose:1.11.0-alpha01
i androidx.activity:activity-ktx:1.11.0-alpha01
są zwalniane. Wersja 1.11.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodano interfejs
MediaCapabilities
API doPickVisualMediaRequest
, aby umożliwić aplikacjom określanie możliwości multimedialnych, takich jak obsługiwane typy HDR. (Ic3ee7)
Wersja 1.10
Wersja 1.10.1
26 lutego 2025 r.
androidx.activity:activity:1.10.1
, androidx.activity:activity-compose:1.10.1
i androidx.activity:activity-ktx:1.10.1
są zwalniane. Wersja 1.10.1 zawiera te zmiany.
Poprawki błędów
- Problemy z
ViewTree
OnBackPressedDispatcherOwners
iFullyDrawnReporterOwners
można teraz rozwiązywać za pomocą rozłącznych elementów nadrzędnych widoku, np.ViewOverlay
. Więcej informacji o rozłącznych elementach nadrzędnych widoku znajdziesz w informacjach o wersji podstawowej lub w dokumentacji wViewTree.setViewTreeDisjointParent
. (Ie7750)
Wersja 1.10.0
15 stycznia 2025 r.
androidx.activity:activity:1.10.0
, androidx.activity:activity-compose:1.10.0
i androidx.activity:activity-ktx:1.10.0
są zwalniane. Wersja 1.10.0 zawiera te zmiany.
Ważne zmiany od wersji 1.9.0
PhotoPicker
umożliwia teraz wybieranie obrazów w określonej kolejności i wybieranie karty (albumy lub obrazy), która ma być początkowo widoczna.- Umowy
PickVisualMedia
iPickMultipleVisualMedia
Activity Result, które wywołują selektor zdjęć, nie delegują już bezpośrednio do usług Google Play, jeśli selektor zdjęć w systemie jest niedostępny, ale używają publicznej czynnościACTION_SYSTEM_FALLBACK_PICK_IMAGES
i powiązanych dodatków, aby zapewnić producentom OEM i aplikacjom systemowym spójne działanie selektora zdjęć jako rezerwy. - Nowy element
LocalActivity
kompozycji lokalnej, który udostępniaActivity
dla bieżącego zakresu, dzięki czemu deweloperzy nie muszą pobieraćActivity
zLocalContext
.
Wersja 1.10.0-rc01
11 grudnia 2024 r.
androidx.activity:activity:1.10.0-rc01
, androidx.activity:activity-compose:1.10.0-rc01
i androidx.activity:activity-ktx:1.10.0-rc01
są zwalniane. Wersja 1.10.0-rc01 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że zmiana stanu włączenia, gdy
PredictiveBackHandler
jest obecnie aktywny, natychmiast przerywała wywołanie zwrotne. Teraz dokończy bieżące wywołanie zwrotne niezależnie od zmian stanu włączenia. (Ib8719)
Wersja 1.10.0-beta01
13 listopada 2024 r.
Wersje androidx.activity:activity:1.10.0-beta01
, androidx.activity:activity-compose:1.10.0-beta01
i androidx.activity:activity-ktx:1.10.0-beta01
zostały udostępnione bez zmian w porównaniu z ostatnią wersją alfa. Wersja 1.10.0-beta01 zawiera te zmiany.
Wersja 1.10.0-alpha03
30 października 2024 r.
androidx.activity:activity:1.10.0-alpha03
, androidx.activity:activity-compose:1.10.0-alpha03
i androidx.activity:activity-ktx:1.10.0-alpha03
są zwalniane. Wersja 1.10.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano nowy lokalny komponent
LocalActivity
, który udostępniaActivity
dla bieżącego zakresu, dzięki czemu deweloperzy nie muszą pobieraćActivity
zLocalContext
. Zawiera też nową regułę lint, która sprawdza, czyLocalContext
jest nieprawidłowo rzutowany naActivity
. (I7746a, b/283009666)
Poprawki błędów
- Z Activity
1.9.3
:PredictiveBackHandler
nie będzie już wywoływać wywołania zwrotnego po wyłączeniu modułu obsługi. Rozwiąże to problem, w wyniku którego funkcjaNavHost
z Navigation Compose zgłaszała błądIndexOutOfBoundsException
. (I3f75e, b/365027664, b/340202286)
Aktualizacja zależności
- Biblioteka Activity Compose zależy teraz od środowiska wykonawczego Compose w wersji 1.7.0 (I7746a, b/283009666)
Wersja 1.10.0-alpha02
4 września 2024 r.
androidx.activity:activity:1.10.0-alpha02
, androidx.activity:activity-compose:1.10.0-alpha02
i androidx.activity:activity-ktx:1.10.0-alpha02
są zwalniane. Wersja 1.10.0-alpha02 zawiera te zmiany.
Zmiany w zachowaniu
- Umowy
PickVisualMedia
iPickMultipleVisualMedia
Activity Result, które wywołują selektor zdjęć, nie delegują już bezpośrednio do usług Google Play, jeśli selektor zdjęć w systemie jest niedostępny, ale używają publicznej czynnościACTION_SYSTEM_FALLBACK_PICK_IMAGES
i powiązanych dodatków, aby zapewnić producentom OEM i aplikacjom systemowym spójne działanie selektora zdjęć jako rezerwy. Nie powinno to mieć wpływu na wrażenia użytkowników, którzy mają urządzenia z najnowszą wersją Usług Google Play. (I3513d)
Poprawki błędów
- Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (I9496c, b/345472586)
- W Activity
1.9.2
rozwiązaliśmy problem polegający na tym, że interfejs Activity ComposePredictiveBackHandler
API nadal obsługiwał gest cofania systemowego w ramce, w której został wyłączony. Mogło to powodować, że biblioteki takie jak Navigation Compose obsługiwały cofanie nawet w przypadku pustego stosu wstecznego, co powodowało zgłaszanie błęduIndexOutOfBoundsException
. (Ie3301, b/340202286) - Na stronie Aktywność
1.9.1
: rozwiązaliśmy problem zPredictiveBackHandler
, który powodował, że po cofnięciu zmian w systemie próba wykonaniaonBackPressed
zOnBackPressedDispatcher
kończyła się niepowodzeniem. (I5f1f8)
Wersja 1.10.0-alpha01
26 czerwca 2024 r.
androidx.activity:activity:1.10.0-alpha01
, androidx.activity:activity-compose:1.10.0-alpha01
i androidx.activity:activity-ktx:1.10.0-alpha01
są zwalniane. Ta wersja jest opracowywana w wewnętrznej gałęzi.
Nowe funkcje
- Dodaliśmy obsługę nowych funkcji
PhotoPicker
wprowadzonych w Androidzie V, w tym możliwość wybierania obrazów w określonej kolejności i wybierania, która karta (albumy czy obrazy) ma być początkowo widoczna.
Wersja 1.9
Wersja 1.9.3
16 października 2024 r.
androidx.activity:activity:1.9.3
, androidx.activity:activity-compose:1.9.3
i androidx.activity:activity-ktx:1.9.3
są zwalniane. Wersja 1.9.3 zawiera te zmiany.
Poprawki błędów
PredictiveBackHandler
nie będzie już wywoływać funkcji zwrotnej po wyłączeniu modułu obsługi. Rozwiąże to problem, w wyniku którego funkcjaNavHost
z Navigation Compose zgłaszała błądIndexOutOfBoundsException
. (I3f75e, b/340202286)
Wersja 1.9.2
4 września 2024 r.
androidx.activity:activity:1.9.2
, androidx.activity:activity-compose:1.9.2
i androidx.activity:activity-ktx:1.9.2
są zwalniane. Wersja 1.9.2 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że interfejs Activity Compose
PredictiveBackHandler
API nadal obsługiwał gest cofania systemu w ramce, w której został wyłączony. Mogło to powodować, że biblioteki takie jak Navigation Compose obsługiwały cofanie nawet przy pustym stosie wstecznym, co powodowało zgłaszanie błęduIndexOutOfBoundsException
. (Ie3301, b/340202286)
Wersja 1.9.1
24 lipca 2024 r.
androidx.activity:activity:1.9.1
, androidx.activity:activity-compose:1.9.1
i androidx.activity:activity-ktx:1.9.1
są zwalniane. Wersja 1.9.1 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z
PredictiveBackHandler
, który powodował, że po przywróceniu systemu próba wykonaniaonBackPressed
zOnBackPressedDispatcher
kończyła się niepowodzeniem. (I5f1f8)
Wersja 1.9.0
17 kwietnia 2024 r.
androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
i androidx.activity:activity-ktx:1.9.0
są zwalniane. Wersja 1.9.0 zawiera te zmiany.
Ważne zmiany od wersji 1.8.0
ComponentActivity
implementuje terazOnUserLeaveHintProvider
, aby umożliwić komponentom wywoływanie zwrotne w przypadku zdarzeńonUserLeaveHint
.- Interfejsy API
OnBackPressedCallback
,BackHandler
iPredictiveBackHandler
ostrzegają teraz przed wywoływaniemonBackPressedDispatcher.onBackPressed()
podczas obsługi przejścia wstecz, ponieważ zawsze przerywa to animację przewidywanego przejścia wstecz. Więcej informacji znajdziesz w przewodniku po sprawdzonych metodach. - Pozostałe interfejsy Activity API zostały przepisane w Kotlinie, a wszystkie rozszerzenia dostępne wcześniej w
activity-ktx
zostały przeniesione doactivity
.activity-ktx
jest teraz całkowicie pusta.- W ramach konwersji
ActivityResultLauncher
na Kotlin metodęgetContract
przekształciliśmy w abstrakcyjną właściwość Kotlin. Jest to zmiana zgodna binarnie, ale powodująca niezgodność kodu źródłowego, jeśli implementacjaActivityResultLauncher
jest napisana w języku Kotlin.
- W ramach konwersji
Wersja 1.9.0-rc01
3 kwietnia 2024 r.
androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
i androidx.activity:activity-ktx:1.9.0-rc01
są zwalniane. Wersja 1.9.0-rc01 zawiera te zmiany.
Aktualizacja zależności
- Aktywność zależy teraz od instalatora profilu 1.3.1.
Wersja 1.9.0-beta01
20 marca 2024 r.
androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
i androidx.activity:activity-ktx:1.9.0-beta01
są zwalniane. Wersja 1.9.0-beta01 zawiera te zmiany.
Poprawki błędów
- Naprawiono regresję wydajności uruchamiania aktywności wprowadzoną w Activity
1.9.0-alpha02
, która była spowodowana wywoływaniem funkcjiOnBackPressedDispatcher
w ramach tworzenia aktywności. (Ie75e3)
Wersja 1.9.0-alpha03
7 lutego 2024 r.
androidx.activity:activity:1.9.0-alpha03
, androidx.activity:activity-compose:1.9.0-alpha03
i androidx.activity:activity-ktx:1.9.0-alpha03
są zwalniane. Wersja 1.9.0-alpha03 zawiera te zmiany.
Ostrzeżenie dotyczące lintera
- Interfejsy API
OnBackPressedCallback
,BackHandler
iPredictiveBackHandler
ostrzegają teraz przed wywoływaniemonBackPressedDispatcher.onBackPressed()
podczas obsługi przejścia wstecz, ponieważ zawsze przerywa to animację przewidywanego przejścia wstecz. Więcej informacji znajdziesz w przewodniku po sprawdzonych metodach. (1e4222, 2c950d, b/287505200)
Poprawki błędów
- Jeśli zdarzenie powrotu zostanie wysłane z systemu uruchomionego podczas już trwającego gestu przewidywanego powrotu, aktualnie trwający gest przewidywanego powrotu zostanie anulowany, a nowe zdarzenie powrotu przejmie kontrolę, aby rozpocząć nowy gest przewidywanego powrotu. (I3482e)
- Naprawiono błąd, który występował podczas pierwszego dostępu do
onBackPressedDispatcher
zComponentActivity
w wątku w tle. Teraz możesz bezpiecznie uzyskać dostęp doonBackPressedDispatcher
w dowolnym wątku. (I79955)
Wersja 1.9.0-alpha02
24 stycznia 2024 r.
androidx.activity:activity:1.9.0-alpha02
, androidx.activity:activity-compose:1.9.0-alpha02
i androidx.activity:activity-ktx:1.9.0-alpha02
są zwalniane. Wersja 1.9.0-alpha02 zawiera te zmiany.
Konwersje w Kotlinie
ActivityResultRegistry
został przepisany w języku Kotlin. Dzięki temu wartość nullability typów ogólnych w kontrakcie przekazanym doregister
zostanie prawidłowo przekazana doActivityResultLauncher
zwróconego do Ciebie. (I121f0)ActivityResult
został przepisany w języku Kotlin. Rozszerzenia języka KotlinActivityResult
, które obsługują rozkładanie na polaresultCode
idata
, zostały przeniesione zactivity-ktx
doactivity
. (I0565a)- Rozszerzenia Kotlin
by viewModels()
dlaComponentActivity
itrackPipAnimationHintView
zostały przeniesione zactivity-ktx
doactivity
. Artefaktactivity-ktx
jest teraz całkowicie pusty. (I0a444)
Poprawki błędów
- Interfejs API
enableEdgeToEdge
rysuje teraz elementy wokół wycięć na wyświetlaczu. (a3644b, b/311173461) - W Activity
1.8.2
: poprawiono dodatkowe dane przekazywane do kontraktu aktywności selektora zdjęćACTION_SYSTEM_FALLBACK_PICK_IMAGES
, aby prawidłowo przekazywać je za pomocą kluczaEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, a nie dodatkowych danych z kluczem"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Jeśli jesteś producentem OEM, który wdraża systemowy selektor zdjęć z funkcją powrotu, zdecydowanie zalecamy obsługę obu dodatków, aby zapewnić jak największą kompatybilność. (I96a00)
Wersja 1.9.0-alpha01
29 listopada 2023 r.
androidx.activity:activity:1.9.0-alpha01
, androidx.activity:activity-compose:1.9.0-alpha01
i androidx.activity:activity-ktx:1.9.0-alpha01
są zwalniane. Wersja 1.9.0-alpha01 zawiera te zmiany.
Nowe funkcje
ComponentActivity
implementuje terazOnUserLeaveHintProvider
, aby umożliwić komponentom wywoływanie zwrotne w przypadku zdarzeńonUserLeaveHint
. (I54892)
Zmiany w interfejsie API
ComponentActivity
został przepisany w języku Kotlin. (I14f31)ActivityResultCaller
został przepisany w języku Kotlin. (Ib02e4)ActivityResultLauncher
został przepisany w języku Kotlin. W ramach tej konwersji metodagetContract
jest teraz abstrakcyjną właściwością Kotlin. Jest to zmiana zgodna binarnie, ale powodująca niezgodność kodu źródłowego, jeśli implementacjaActivityResultLauncher
jest napisana w języku Kotlin. (Id4615)PickVisualMediaRequest
ma teraz taki sam minimalny poziom interfejsu API (19) jak kontraktPickVisualMedia
Activity Result. (Id6e21)
Aktualizacja zależności
- Aktywność zależy teraz od Core
1.13.0-alpha01
. (I14f31)
Wersja 1.8
Wersja 1.8.2
13 grudnia 2023 r.
androidx.activity:activity:1.8.2
, androidx.activity:activity-compose:1.8.2
i androidx.activity:activity-ktx:1.8.2
są zwalniane. Wersja 1.8.2 zawiera te zmiany.
Poprawki błędów
- Poprawiono dodatkowe dane przekazywane do
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
w umowie dotyczącej aktywności selektora zdjęć, aby prawidłowo przekazywać kluczEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
zamiast używać dodatkowych danych z kluczem"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Jeśli jesteś producentem OEM, który wdraża systemowy selektor zdjęć z funkcją powrotu, zdecydowanie zalecamy obsługę obu dodatków, aby zapewnić jak największą kompatybilność. (I96a00)
Wersja 1.8.1
15 listopada 2023 r.
androidx.activity:activity:1.8.1
, androidx.activity:activity-compose:1.8.1
i androidx.activity:activity-ktx:1.8.1
są zwalniane. Wersja 1.8.1 zawiera te zmiany.
Poprawki błędów
OnBackPressedDispatcher
nadal wysyła zdarzenia do właściwegoOnBackPressedCallback
nawet po dodaniu nowegoOnBackPressedCallback
podczas obsługi gestu wstecz. (Id0ff6)
Wersja 1.8.0
4 października 2023 roku
androidx.activity:activity:1.8.0
, androidx.activity:activity-compose:1.8.0
i androidx.activity:activity-ktx:1.8.0
są zwalniane. Wersja 1.8.0 zawiera te zmiany.
Ważne zmiany od wersji 1.7.0
- Przewidywane przejście wstecz –
OnBackPressedCallback
oferuje teraz nowe wywołania zwrotne przewidywanego przejścia wstecz, które obsługują rozpoczęcie gestu przejścia wstecz, jego postęp i anulowanie. Oprócz tego dostępne jest poprzednie wywołanie zwrotnehandleOnBackPressed()
, które obsługuje zatwierdzenie gestu przejścia wstecz. Zawiera też funkcjęPredictiveBackHandler
, która obsługuje zdarzenia związane z gestem cofania w kompozycji aktywności. Zapewnia przepływ obiektów BackEventCompat, które muszą być zbierane w zawieszającej lambdzie podanej przez Ciebie:
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()
został wycofany na rzecz interfejsów API do obsługi powrotu. Deweloperzy powinni teraz używać metody OnBackPressedDispatcher
zamiast zastępować tę metodę.
- EdgeToEdge – dodano
ComponentActivity.enableEdgeToEdge()
, aby w sposób zgodny wstecznie można było łatwo skonfigurować wyświetlacz od krawędzi do krawędzi.
Wersja 1.8.0-rc01
20 września 2023 r.
androidx.activity:activity:1.8.0-rc01
, androidx.activity:activity-compose:1.8.0-rc01
i androidx.activity:activity-ktx:1.8.0-rc01
są zwalniane. Wersja 1.8.0-rc01 zawiera te zmiany.
Wersja 1.8.0-beta01
6 września 2023 r.
androidx.activity:activity:1.8.0-beta01
, androidx.activity:activity-compose:1.8.0-beta01
i androidx.activity:activity-ktx:1.8.0-beta01
są zwalniane. Wersja 1.8.0-beta01 zawiera te zmiany.
Ulepszanie dokumentacji
- Ulepszyliśmy dokumentację dotyczącą
BackEventCompat
. (aosp/2722254)
Wersja 1.8.0-alpha07
23 sierpnia 2023 r.
androidx.activity:activity:1.8.0-alpha07
, androidx.activity:activity-compose:1.8.0-alpha07
i androidx.activity:activity-ktx:1.8.0-alpha07
są zwalniane. Wersja 1.8.0-alpha07 zawiera te zmiany.
Nowe funkcje
W Activity Compose dodano nowy komponent
PredictiveBackHandler
, który obsługuje zdarzenia gestu przewidywania powrotu. ZawieraFlow
obiektówBackEventCompat
, które należy zebrać w zawieszającej lambdzie podanej przez użytkownika: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 w czasie kompilacji za pomocą reguły lint, aby zapewnić, że wywołania
Flow
wywołującollect()
. (Id2773, b/294884345)Obiekt
onBackPressedDispatcher
wComponentActivity
jest teraz inicjowany z opóźnieniem, dzięki czemu jest tworzony tylko wtedy, gdy jest wymagany. (I0bf8e)
Poprawki błędów
ComponentActivity
nie będzie już wyświetlać błędu NPE na Androidzie 13, gdy otrzyma wywołanie zwrotneonBackPressed()
, a aktywność została jużDESTROYED
. (Idb055, b/291869278)- Usunięto użycie eksperymentalnego interfejsu
isAtLeastU()
API (Ie9117, b/289269026)
Wersja 1.8.0-alpha06
21 czerwca 2023 r.
androidx.activity:activity:1.8.0-alpha06
, androidx.activity:activity-compose:1.8.0-alpha06
i androidx.activity:activity-ktx:1.8.0-alpha06
są zwalniane. Wersja 1.8.0-alpha06 zawiera te zmiany.
Nowe funkcje
OnBackPressedDispatcher
teraz prawidłowo anuluje wszystkie wywołania zwrotne, które zostały usunięte podczas gestu przewidywania powrotu. (I3f90f)
Zmiany w interfejsie API
- Podczas przekazywania wartości
SystemBarStyle.auto
do interfejsuenableEdgeToEdge
API możesz teraz zastąpić parametr lambdadetectDarkMode
, aby podać niestandardową logikę wykrywania trybu nocnego. (aosp/2546393, b/278263793)
Wersja 1.8.0-alpha05
7 czerwca 2023 r.
androidx.activity:activity:1.8.0-alpha05
, androidx.activity:activity-compose:1.8.0-alpha05
i androidx.activity:activity-ktx:1.8.0-alpha05
są zwalniane. Ta wersja jest opracowywana w wewnętrznej gałęzi.
Zmiany w interfejsie API
- Activity udostępnia teraz klasę
BackEventCompat
, która jest wersją zgodną wstecznie klasyBackEvent
i jest od niej odłączona.BackEvent
- Zmiana powodująca niezgodność: metody
handleOnBackStarted
ihandleOnBackProgressed
klasyOnBackPressedCallback
otrzymują teraz instancjęandroidx.activity.BackEventCompat
zamiast klasyandroid.window.BackEvent
frameworka. Zaktualizowaliśmy też odpowiednie interfejsy API@VisibleForTesting
naOnBackPressedDispatcher
. - Konstruktor
OnBackPressedDispatcher
przyjmuje teraz opcjonalną instancjęConsumer<Boolean>
, która umożliwia właścicielom dyspozytora otrzymywanie wywołania zwrotnego, gdy liczba włączonych wywołań zwrotnych zmienia się z zera na wartość różną od zera lub odwrotnie.
Poprawki błędów
- W sekcji Aktywność
1.7.2
: naprawiono błądReportDrawn
powodujący awarię podczas opuszczania ekranu przed wywołaniem funkcjireport
. (Ic46f1, b/260506820)
Wersja 1.8.0-alpha04
10 maja 2023 r.
androidx.activity:activity:1.8.0-alpha04
, androidx.activity:activity-compose:1.8.0-alpha04
i androidx.activity:activity-ktx:1.8.0-alpha04
są zwalniane. Została ona udostępniona z wewnętrznej gałęzi.
Poprawki błędów
- Wersja Activity 1.7.1: –
ReportFullyDrawExecuter
nie wycieka już podczas korzystania zComponentActivity
zActivityScenario
. (Id2ff2, b/277434271)
Wersja 1.8.0-alpha03
12 kwietnia 2023 r.
androidx.activity:activity:1.8.0-alpha03
, androidx.activity:activity-compose:1.8.0-alpha03
i androidx.activity:activity-ktx:1.8.0-alpha03
są zwalniane. Została ona udostępniona z wewnętrznej gałęzi.
Nowe funkcje
- Dodaliśmy
ComponentActivity.setUpEdgeToEdge()
, aby ułatwić konfigurację wyświetlacza od krawędzi do krawędzi w sposób zgodny wstecznie.
Zmiany w interfejsie API
ComponentActivity.onBackPressed()
został wycofany na rzecz interfejsów API do obsługi powrotu. Deweloperzy powinni teraz używać metodyOnBackPressedDispatcher
zamiast zastępować tę metodę. (Ibce2f, b/271596918)ComponentDialog
iComponentActivity
zawierają teraz publiczny interfejs APIinitViewTreeOwners()
, 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
- Rozwiązaliśmy problem, który powodował, że fragmenty nieprawidłowo unieważniały elementy MenuHost i powodowały nieoczekiwane działanie innych menu w aktywności. (I9404e, b/244336571)
Inne zmiany
ActivityResultRegister
używa teraz KotlinaRandom
zamiast Javy. (I4d98f, b/272096025)
Wersja 1.8.0-alpha02
8 marca 2023 r.
androidx.activity:activity:1.8.0-alpha02
, androidx.activity:activity-compose:1.8.0-alpha02
i androidx.activity:activity-ktx:1.8.0-alpha02
są zwalniane. Opracowano na podstawie gałęzi wewnętrznej.
Aktualizacja zależności
- Z sekcji Aktywność
1.7.0-rc01
: aktywność zależy teraz odLifecycle 2.6.0
.
Wersja 1.8.0-alpha01
8 lutego 2023 r.
androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
i androidx.activity:activity-ktx:1.8.0-alpha01
są zwalniane. Zostało ono utworzone na podstawie wewnętrznej gałęzi.
Nowe funkcje
- Klasa
OnBackPressedCallback
zawiera teraz nowe wywołania zwrotne postępu przewidywanego przejścia wstecz, które obsługują rozpoczęcie gestu, jego postęp i anulowanie. Oprócz tego jest też dostępne poprzednie wywołanie zwrotnehandleOnBackPressed()
, które jest wywoływane, gdy gest zostanie wykonany.
Wersja 1.7
Wersja 1.7.2
24 maja 2023 r.
androidx.activity:activity:1.7.2
, androidx.activity:activity-compose:1.7.2
i androidx.activity:activity-ktx:1.7.2
są zwalniane. Wersja 1.7.2 zawiera te zmiany.
Poprawki błędów
- Naprawiono błąd powodujący awarię
ReportDrawn
podczas opuszczania ekranu przed wywołaniemreport
. (Ic46f1, b/260506820)
Wersja 1.7.1
19 kwietnia 2023 r.
androidx.activity:activity:1.7.1
, androidx.activity:activity-compose:1.7.1
i androidx.activity:activity-ktx:1.7.1
są zwalniane. Wersja 1.7.1 zawiera te zmiany.
Poprawki błędów
- Właściwość
ReportFullyDrawExecuter
nie jest już ujawniana podczas korzystania z funkcjiComponentActivity
z funkcjąActivityScenario
. (Id2ff2, b/277434271)
Wersja 1.7.0
22 marca 2023 r.
androidx.activity:activity:1.7.0
, androidx.activity:activity-compose:1.7.0
i androidx.activity:activity-ktx:1.7.0
są zwalniane. Wersja 1.7.0 zawiera te zmiany.
Ważne zmiany od wersji 1.6.0
- Kontrakty aktywności selektora zdjęć w
PickVisualMedia
iPickMultipleVisualMedia
zostały zaktualizowane, aby zawierały dodatkowe rozwiązanie awaryjne na wypadek niedostępnościMediaStore.ACTION_PICK_IMAGES
. Umożliwia ono producentom OEM i aplikacjom systemowym, takim jak Usługi Google Play, zapewnienie spójnego działania selektora zdjęć na szerszej gamie urządzeń z Androidem i poziomów interfejsu API przez wdrożenie działania awaryjnego. Selektor zdjęć użyje tego rozwiązania, jeśli będzie ono dostępne, zanim przejdzie do korzystania zIntent.ACTION_OPEN_DOCUMENT
, które nadal obsługuje wszystkie urządzenia z interfejsem API 19 i nowszym. ComponentDialog
implementuje terazSavedStateRegistryOwner
i ma dostęp do własnegoSavedStateRegistry
oraz ustawiaSavedStateRegistryOwner
dla swojegoViewTree
. Teraz można używać Jetpack Compose wComponentDialog
, ponieważ spełnia on wymaganiaLifecycleOwner
iSavedStateRegistryOwner
dołączone do okna za pomocą interfejsów APIViewTree
.IntentSenderRequest.Builder.setFlags()
umożliwia teraz ustawianie wielu oznaczeń z poziomuIntent
, a nie tylko jednego.
Konwersja do języka Kotlin
Wiele klas aktywności zostało przekonwertowanych na język Kotlin. Wszystkie przekonwertowane zajęcia zachowują zgodność binarną z poprzednimi wersjami. W przypadku klas napisanych w Kotlinie te klasy mają niezgodne zmiany w kodzie źródłowym: ActivityResultRegistryOwner
, OnBackPressedDispatcherOwner
.
W tabeli poniżej znajdziesz źródłowe konwersje w nowej wersji aktywności:
Aktywność 1.5 | Aktywność 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
Te klasy zostały również przekonwertowane na język Kotlin, ale zachowują zgodność ze źródłem: ContextAware
, ContextAwareHelper
, OnContextAvailableListener
, IntentSenderRequest
i OnBackPressedDispatcher
Interfejsy FullyDrawnReporter API
ComponentActivity
udostępnia teraz instancję FullyDrawnReporter
, która umożliwia wielu komponentom zgłaszanie gotowości do interakcji. ComponentActivity
poczeka, aż wszystkie komponenty zostaną ukończone, zanim w Twoim imieniu wywoła 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 środowisku wykonawczemu Androida zakończenia uruchamiania, aby mieć pewność, że cały kod uruchamiany podczas wieloklatkowej sekwencji uruchamiania jest uwzględniany i traktowany priorytetowo w kompilacji w tle.
- Sygnalizowanie testu porównawczego Macrobenchmark i danych Play Vitals, kiedy aplikacja powinna być uznawana za w pełni wyrenderowaną na potrzeby pomiarów uruchamiania, aby można było śledzić wydajność.
Dodaliśmy 3 interfejsy Activity Compose API, aby ułatwić korzystanie z FullyDrawnReporter
w poszczególnych komponentach:
ReportDrawn
oznacza, że komponent jest od razu gotowy do interakcji.ReportDrawnWhen
przyjmuje predykat (czylilist.count > 0
), aby wskazać, kiedy komponent jest gotowy do interakcji.ReportDrawnAfter
przyjmuje metodę zawieszającą, która po zakończeniu wskazuje, że jesteś gotowy(-a) do interakcji.
Aktualizacje zależności
- Aktywność zależy teraz od cyklu życia
2.6.1
. (8fc31d) - Aktywność zależy teraz od ProfileInstaller
1.3.0
. (83d3b1)
Wersja 1.7.0-rc01
8 marca 2023 r.
androidx.activity:activity:1.7.0-rc01
, androidx.activity:activity-compose:1.7.0-rc01
i androidx.activity:activity-ktx:1.7.0-rc01
są zwalniane. Wersja 1.7.0-rc01 zawiera te zmiany.
Aktualizacja zależności
- Aktywność zależy teraz od
Lifecycle 2.6.0
.
Wersja 1.7.0-beta02
22 lutego 2023 roku
androidx.activity:activity:1.7.0-beta02
, androidx.activity:activity-compose:1.7.0-beta02
i androidx.activity:activity-ktx:1.7.0-beta02
są zwalniane. Wersja 1.7.0-beta02 zawiera te zmiany.
Zmiany w interfejsie API
- Działanie i dodatkowy element używane przez kontrakty
PickVisualMedia
iPickMultipleVisualMedia
jako rezerwa, gdyMediaStore.ACTION_PICK_IMAGES
jest niedostępny, są teraz stałymi publicznymi, które zapewniają stabilność interfejsu API producentom OEM i aplikacjom systemowym, które chcą zapewnić spójne działanie selektora zdjęć. To rozwiązanie jest nadal ograniczone tylko do aplikacji systemowych. (Icd320)
Wersja 1.7.0-beta01
8 lutego 2023 r.
androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
i androidx.activity:activity-ktx:1.7.0-beta01
są zwalniane. Wersja 1.7.0-beta01 zawiera te zmiany.
Nowe funkcje
IntentSenderRequest.Builder.setFlags()
umożliwia teraz ustawianie wielu oznaczeń z poziomuIntent
, a nie tylko jednego. (Iac04c)
Poprawki błędów
- W przypadku
PickVisualMedia
, gdy selektor zdjęć nie jest dostępny, mechanizm rezerwowy prawidłowo ogranicza obsługę do aplikacji zainstalowanych w obrazie systemu urządzenia. (If8ae6)
Konwersje w Kotlinie
ActivityResultRegistryOwner
jest teraz napisany w języku Kotlin. Jest to zmiana powodująca niezgodność źródła w przypadku klas napisanych w Kotlinie – teraz musisz zastąpić właściwośćactivityResultRegistry
, a nie implementować poprzedniej funkcjigetActivityResultRegistry()
. (I0b00e)OnBackPressedDispatcherOwner
jest teraz napisany w języku Kotlin. Jest to zmiana powodująca niezgodność źródła w przypadku klas napisanych w Kotlinie – teraz musisz zastąpić właściwośćonBackPressedDispatcher
, a nie implementować poprzedniej funkcjigetOnBackPressedDispatcher
. (Ia277d)ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
iOnBackPressedDispatcher
są teraz napisane w języku Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)
Wersja 1.7.0-alpha04
25 stycznia 2023 r.
androidx.activity:activity:1.7.0-alpha04
, androidx.activity:activity-compose:1.7.0-alpha04
i androidx.activity:activity-ktx:1.7.0-alpha04
są zwalniane. Wersja 1.7.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Umowy dotyczące wyników aktywności
PickVisualMedia
iPickMultipleVisualMedia
będą teraz korzystać z selektora zdjęć udostępnianego przez usługi Google Play, jeśli jest on dostępny w przypadkach, w których selektor zdjęć jest udostępniany przez system Android (np.MediaStore.ACTION_PICK_IMAGES
) jest niedostępna. InterfejsisPhotoPickerAvailable()
API, który wykrywa tylko selektor zdjęć udostępniany przez system Android, został wycofany. Zalecamy używanie nowego interfejsuisPhotoPickerAvailable(Context)
API, który zwraca informację o dostępności selektora zdjęć. (I55be6)
Wersja 1.7.0-alpha03
11 stycznia 2023 r.
androidx.activity:activity:1.7.0-alpha03
, androidx.activity:activity-compose:1.7.0-alpha03
i androidx.activity:activity-ktx:1.7.0-alpha03
są zwalniane. Wersja 1.7.0-alpha03 zawiera te zmiany.
Nowe funkcje
ComponentDialog
implementuje terazSavedStateRegistryOwner
i ma dostęp do własnegoSavedStateRegistry
oraz ustawiaSavedStateRegistryOwner
dla swojego ViewTree. Teraz możesz używać Jetpack Compose wComponentDialog
, ponieważ spełnia on wymaganiaLifecycleOwner
iSavedStateRegistryOwner
dołączone do okna za pomocą interfejsów ViewTree API. (Idca17, I73468 b/261162296)
Zmiany w interfejsie API
- Dodano funkcję
ReportDrawn
, która natychmiast oznacza aktywność jako gotową do wywołania funkcjireportFullyDrawn
. (Ic5b14, b/259687964)
Konwersje w Kotlinie
- Klasy
ActvitiyResultCallback
iOnBackPressedCallback
zostały przekonwertowane na Kotlin z zachowaniem zgodności kodu źródłowego i binarnej. (Ifc5e5, Ide1b0, b/257291701)
Wersja 1.7.0-alpha02
24 października 2022 r.
androidx.activity:activity:1.7.0-alpha02
, androidx.activity:activity-compose:1.7.0-alpha02
i androidx.activity:activity-ktx:1.7.0-alpha02
są zwalniane. Wersja 1.7.0-alpha02 zawiera te zmiany.
Poprawki błędów
- W sekcji Aktywność
1.6.1
: rozwiązaliśmy problem z nieuruchamianiem kontraktuPickMultipleVisualMedia
Activity Result na urządzeniach z Androidem R, gdy używana była wartość domyślna parametrumaxItems
. (Ie2776, b/249182130)
Wersja 1.7.0-alpha01
5 października 2022 r.
androidx.activity:activity:1.7.0-alpha01
, androidx.activity:activity-compose:1.7.0-alpha01
i androidx.activity:activity-ktx:1.7.0-alpha01
są zwalniane. Wersja 1.7.0-alpha01 zawiera te zmiany.
Interfejsy FullyDrawnReporter API
ComponentActivity
udostępnia teraz instancję FullyDrawnReporter
, która umożliwia wielu komponentom zgłaszanie gotowości do interakcji. ComponentActivity
poczeka, aż wszystkie komponenty zostaną ukończone, zanim w Twoim imieniu wywoła 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 środowisku wykonawczemu Androida zakończenia uruchamiania, aby mieć pewność, że cały kod uruchamiany podczas wieloklatkowej sekwencji uruchamiania jest uwzględniany i traktowany priorytetowo w kompilacji w tle.
- Sygnalizowanie testu porównawczego Macrobenchmark i danych Play Vitals, kiedy aplikacja powinna być uznawana za w pełni wyrenderowaną na potrzeby pomiarów uruchamiania, aby można było śledzić wydajność.
Dodaliśmy 2 interfejsy Activity Compose API, aby ułatwić korzystanie z FullyDrawnReporter
z pojedynczych komponentów:
ReportDrawnWhen
przyjmuje predykat (czylilist.count > 0
), aby wskazać, kiedy komponent jest gotowy do interakcji.ReportDrawnAfter
przyjmuje metodę zawieszającą, która po zakończeniu wskazuje, że jesteś gotowy(-a) do interakcji.
Wersja 1.6.1
Wersja 1.6.1
24 października 2022 r.
androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
i androidx.activity:activity-ktx:1.6.1
są zwalniane. Wersja 1.6.1 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z kontraktem
PickMultipleVisualMedia
Activity Result, który nie uruchamiał się na urządzeniach z Androidem R, gdy używana była wartość domyślna parametrumaxItems
. (Ie2776, b/249182130)
Wersja 1.6.0
Wersja 1.6.0
21 września 2022 r.
androidx.activity:activity:1.6.0
, androidx.activity:activity-compose:1.6.0
i androidx.activity:activity-ktx:1.6.0
są zwalniane. Wersja 1.6.0 zawiera te zmiany.
Ważne zmiany od wersji 1.5.0
- Dodano
ActivityResultContracts.PickVisualMedia
iActivityResultContracts.PickMultipleVisualMedia
, aby zapewnić zgodną wstecznie umowę, która używaMediaStore.ACTION_PICK_IMAGES
, gdy dostępny jest Selektor zdjęć, orazIntent.ACTION_OPEN_DOCUMENT
, gdy nie jest on dostępny. - Zintegrowaliśmy
OnBackInvokedCallback
w Androidzie 13 zOnBackPressedDispatchers
udostępnianym przezComponentActivity
iComponentDialog
. Dzięki temu wszystkie interfejsy API oparte naOnBackPressedDispatcher
będą działać po włączeniu gestu przewidywanego powrotu.
Wersja 1.6.0-rc02
7 września 2022 roku
androidx.activity:activity:1.6.0-rc02
, androidx.activity:activity-compose:1.6.0-rc02
i androidx.activity:activity-ktx:1.6.0-rc02
są zwalniane. Wersja 1.6.0-rc02 zawiera te zmiany.
Poprawki błędów
OnBackPressedDispatcher
rejestruje terazOnBackInvokedCallback
na konciePRIORITY_DEFAULT
zamiast na konciePRIORITY_OVERLAY
. (I3901f)- Klasy, które rozszerzają
ComponentActivity
, będą teraz zawsze wywoływać oba wywołania zwrotneonMultiWindowModeChanged()
. (Ic4d85) - Funkcja
ActivityResultRegistry
nie będzie już zwracać wyniku do funkcjiActivityResultCallback
, gdy wywołanie funkcjilaunch
zgłosi błądException
, a funkcja wywołania zwrotnego została zarejestrowana bez funkcjiLifecycleOwner
. (Ia7ff7, b/238350794) ComponentActivity
będzie teraz prawidłowo wysyłać wywołania menu bez konieczności wywoływania funkcji nadrzędnej w aktywności. (Ie33c5, b/238057118)
Aktualizacja zależności
- Biblioteka
Activity
jest teraz zależna od Lifecycle2.5.1
. (If6697)
Wersja 1.6.0-rc01
24 sierpnia 2022 r.
androidx.activity:activity:1.6.0-rc01
, androidx.activity:activity-compose:1.6.0-rc01
i androidx.activity:activity-ktx:1.6.0-rc01
są zwalniane. Wersja 1.6.0-rc01 zawiera te zmiany.
Poprawki błędów
- Inicjowanie
OnBackPressedDispatcher
nie będzie już powodowaćClassVerificationError
w przypadku używania wersji pakietu SDK starszych niż 33. (Ic32e1) - W przypadku klas, które zastępują wywołanie zwrotne
ComponentActivity
onPictureInPictureModeChanged()
, wywołania zwrotne będą teraz zawsze wysyłane. (Ib7fdb)
Wersja 1.6.0-beta01
10 sierpnia 2022 r.
androidx.activity:activity:1.6.0-beta01
, androidx.activity:activity-compose:1.6.0-beta01
i androidx.activity:activity-ktx:1.6.0-beta01
są zwalniane. Wersja 1.6.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Oznaczyliśmy wycofane metody
startActivityForResult
istartIntentSenderForResult
wComponentActivity
symbolem@NonNull
, ponieważ przekazywanie wartościnull
zawsze powodowało awarię. (Id2a25, b/231476082)
Poprawki błędów
- Z Activity
1.5.1
:ActivityResultRegistry
nie będzie już zwracać wyniku doActivityResultCallback
, gdy wywołanielaunch
zgłosi błądException
, a wywołanie zwrotne zostało zarejestrowane bezLifecycleOwner
. (Ia7ff7, b/238350794) - Z aktywności
1.5.1
:ComponentActivity
będzie teraz prawidłowo wysyłać wywołania menu do zastąpieńonPrepareOptionMenu()
,onCreateOptionsMenu()
ionOptionsItemSelected()
bez konieczności wywoływania funkcji super. (Ie33c5, b/238057118)
Aktualizacja zależności
- W sekcji Aktywność
1.5.1
: bibliotekaActivity
zależy teraz od wersjiLifecycle
2.5.1
. (If6697)
Wersja 1.6.0-alpha05
15 czerwca 2022 r.
androidx.activity:activity:1.6.0-alpha05
, androidx.activity:activity-compose:1.6.0-alpha05
i androidx.activity:activity-ktx:1.6.0-alpha05
są zwalniane. Wersja 1.6.0-alpha05 została opracowana w prywatnej gałęzi przedpremierowej i nie zawiera publicznych commitów.
Zmiany w interfejsie API
minCompileSdk
ma teraz wartość 33, aby była zgodna z pakietem SDK Tiramisu Beta 3
Poprawki błędów
- Naprawiono awarię na starszych urządzeniach podczas sprawdzania rozszerzenia pakietu SDK dla
PickVisualMedia
ActivityResultContract
, dzięki czemu powinno ono teraz działać zACTION_OPEN_DOCUMENT
na urządzeniach z Androidem 10 i starszym.
Wersja 1.6.0-alpha04
18 maja 2022 r.
androidx.activity:activity:1.6.0-alpha04
i androidx.activity:activity-ktx:1.6.0-alpha04
zostały opublikowane.
Poprawki błędów
- Naprawiono błąd w
PickVisualMediaRequest
, w którym próba utworzenia żądania za pomocą narzędzia do tworzenia lub funkcji Kotlin najwyższego poziomu powodowała przepełnienie stosu. - Zintegrowaliśmy
OnBackInvokedCallback
w Androidzie 13 w wersji beta dla deweloperów 2 zOnBackPressedDispatcher
dostarczonym przezComponentDialog
. Dzięki temu wszystkie interfejsy API oparte naOnBackPressedDispatcher
będą działać po włączeniu gestu przewidywania powrotu.
Wersja 1.6.0-alpha03
27 kwietnia 2022 r.
androidx.activity:activity:1.6.0-alpha03
, androidx.activity:activity-compose:1.6.0-alpha03
i androidx.activity:activity-ktx:1.6.0-alpha03
są zwalniane.
- Uwaga: ta wersja będzie kompilowana tylko z pakietem SDK Androida 13 w wersji beta 1 dla deweloperów.
Nowe funkcje
- Dodano
ActivityResultContracts.PickVisualMedia
iActivityResultContracts.PickMultipleVisualMedia
, aby zapewnić zgodną wstecznie umowę, która używaMediaStore.ACTION_PICK_IMAGES
, gdy dostępny jest Selektor zdjęć, orazIntent.ACTION_OPEN_DOCUMENT
, gdy nie jest on dostępny. - Zintegrowaliśmy
OnBackInvokedCallback
w Androidzie 13 w wersji beta 1 dla deweloperów zOnBackPressedDispatcher
dostarczonym przezComponentActivity
. Dzięki temu wszystkie interfejsy API oparte naOnBackPressedDispatcher
będą działać po włączeniu gestu przewidywania powrotu.
Wersja 1.6.0-alpha01
23 marca 2022 r.
androidx.activity:activity:1.6.0-alpha01
, androidx.activity:activity-compose:1.6.0-alpha01
i androidx.activity:activity-ktx:1.6.0-alpha01
są zwalniane.
- Uwaga: ta wersja będzie kompilowana tylko w oparciu o pakiet SDK wersji przedpremierowej 2 Androida 13.
Nowe funkcje
- Zintegrowano zmiany z Androida 13 w wersji Dev Preview 2 z
ComponentActivity
.
Wersja 1.5.1
Wersja 1.5.1
27 lipca 2022 roku
androidx.activity:activity:1.5.1
, androidx.activity:activity-compose:1.5.1
i androidx.activity:activity-ktx:1.5.1
są zwalniane. Wersja 1.5.1 zawiera te zmiany.
Poprawki błędów
Funkcja
ActivityResultRegistry
nie będzie już zwracać wyniku do funkcjiActivityResultCallback
, gdy wywołanie funkcjilaunch()
spowoduje błądException
, a wywołanie zwrotne zostało zarejestrowane bez funkcjiLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
będzie teraz prawidłowo przekazywać wywołania menu do zastąpieńonPrepareOptionMenu()
,onCreateOptionsMenu()
ionOptionsItemSelected()
bez konieczności wywoływania funkcji super. (Ie33c5, b/238057118)
Aktualizacja zależności
- Biblioteka
Activity
jest teraz zależna od Lifecycle2.5.1
. (If6697)
Wersja 1.5.0
Wersja 1.5.0
29 czerwca 2022 r.
androidx.activity:activity:1.5.0
, androidx.activity:activity-compose:1.5.0
i androidx.activity:activity-ktx:1.5.0
są zwalniane. Wersja 1.5.0 zawiera te zmiany.
Ważne zmiany od wersji 1.4.0
- ComponentDialog –
ComponentDialog
to podklasaDialog
, która zawieraOnBackPressedDispatcher
wywoływany po naciśnięciu systemowego przycisku Wstecz, gdy okno jest widoczne. Co ważne, ta podklasa ustawia teżViewTreeOnBackPressedDispatcherOwner
, co umożliwia widokom ogólny sposób pobierania prawidłowego dyspozytora, niezależnie od tego, czy znajduje się on wComponentActivity
, czy wComponentDialog
. - Interfejsy wywołań zwrotnych –
ComponentActivity
implementuje teraz zestaw modułowych interfejsów wywołań zwrotnych, których można używać zamiast wywołań zwrotnychActivity
. Te interfejsy to:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- Integracja CreationExtras –
ComponentActivity
może teraz udostępniać bezstanowyViewModelProvider.Factory
za pomocą cyklu życia2.5.0
CreationExtras
.
Inne zmiany
- Konstruktor bez parametrów dla klasy
ActivityResultContracts.CreateDocument
został wycofany i zastąpiony nowym konstruktorem, który przyjmuje konkretny typ MIME (np. „image/png”), zgodnie z wymaganiamiIntent.ACTION_CREATE_DOCUMENT
.
Wersja 1.5.0-rc01
11 maja 2022 roku
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 w porównaniu z wersją 1.5.0-beta01. Wersja 1.5.0-rc01 zawiera te zmiany.
Wersja 1.5.0-beta01
20 kwietnia 2022 r.
androidx.activity:activity:1.5.0-beta01
, androidx.activity:activity-compose:1.5.0-beta01
i androidx.activity:activity-ktx:1.5.0-beta01
są zwalniane. Wersja 1.5.0-beta01 zawiera te zmiany.
Aktualizacje zależności
- Aktywność zależy teraz od cyklu życia
2.4.0-beta01
.
Wersja 1.5.0-alpha05
6 kwietnia 2022 roku
androidx.activity:activity:1.5.0-alpha05
, androidx.activity:activity-compose:1.5.0-alpha05
i androidx.activity:activity-ktx:1.5.0-alpha05
są zwalniane. Wersja 1.5.0-alpha05 zawiera te zmiany.
Poprawki błędów
ComponentActivity
wonPanelClosed()
wywołuje teraz również superklasęonPanelClosed()
, co rozwiązuje problem polegający na tym, że metodaonContextMenuClosed
nie była wywoływana. (Ib6f77)
Wersja 1.5.0-alpha04
23 marca 2022 r.
androidx.activity:activity:1.5.0-alpha04
, androidx.activity:activity-compose:1.5.0-alpha04
i androidx.activity:activity-ktx:1.5.0-alpha04
są zwalniane. Wersja 1.5.0-alpha04 zawiera te zmiany.
Poprawki błędów
SavedStateViewFactory
obsługuje teraz używanieCreationExtras
nawet wtedy, gdy zostało zainicjowane za pomocąSavedStateRegistryOwner
. Jeśli podasz dodatkowe informacje, zainicjowane argumenty zostaną zignorowane. (I6c43b, b/224844583)
Wersja 1.5.0-alpha03
23 lutego 2022 r.
androidx.activity:activity:1.5.0-alpha03
, androidx.activity:activity-compose:1.5.0-alpha03
i androidx.activity:activity-ktx:1.5.0-alpha03
są zwalniane. Wersja 1.5.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Możesz teraz przekazywać wartość
CreationExtras
do funkcji działaniaby viewModels()
(I6a3e6, b/217600303).
Wersja 1.5.0-alpha02
9 lutego 2022 r.
androidx.activity:activity:1.5.0-alpha02
, androidx.activity:activity-compose:1.5.0-alpha02
i androidx.activity:activity-ktx:1.5.0-alpha02
są zwalniane. Wersja 1.5.0-alpha02 zawiera te zmiany.
Nowe funkcje
ComponentActivity
implementuje teraz interfejsOnPictureInPictureModeChangedProvider
, aby umożliwić dowolnemu komponentowi odbieranie zdarzeń zmiany trybu obrazu w obrazie. (I9f567)ComponentActivity
implementuje teraz interfejsOnMultiWindowModeChangedProvider
, aby umożliwić dowolnemu komponentowi odbieranie zdarzeń zmiany trybu wielu okien. (I62d91)
Wersja 1.5.0-alpha01
26 stycznia 2022 r.
androidx.activity:activity:1.5.0-alpha01
, androidx.activity:activity-compose:1.5.0-alpha01
i androidx.activity:activity-ktx:1.5.0-alpha01
są zwalniane. Wersja 1.5.0-alpha01 zawiera te zmiany.
Nowe funkcje
ComponentActivity
jest teraz zintegrowany z interfejsem ViewModel CreationExtras, który został wprowadzony w ramach Lifecycle2.5.0-alpha01
. (Ie7e00, b/207012584)- Dodano
ComponentDialog
, podklasęDialog
, która zawieraOnBackPressedDispatcher
, wywoływaną po naciśnięciu przycisku Wstecz w systemie, gdy okno dialogowe jest widoczne. Ważne jest, że ta podklasa ustawia teżViewTreeOnBackPressedDispatcherOwner
, co umożliwia widokom ogólny sposób pobierania odpowiedniego dyspozytora, niezależnie od tego, czy znajduje się on wComponentActivity
czy wComponentDialog
. (I8a1bc) ComponentActivity
implementuje teraz nowy interfejsOnNewIntentProvider
, aby umożliwić dowolnemu komponentowi odbieranie tych zdarzeń. (If1f8b)ComponentActivity
implementuje teraz nowy interfejsOnConfigurationChangedProvider
, aby umożliwić dowolnemu komponentowi odbieranie tych zdarzeń. (If623b)ComponentActivity
implementuje teraz nowy interfejsOnTrimMemoryProvider
, aby umożliwić odbieranie tych zdarzeń przez dowolny komponent. (Ia9295)
Zmiany w interfejsie API
- Konstruktor bez parametrów dla elementu
ActivityResultContracts.CreateDocument
został wycofany i zastąpiony nowym konstruktorem, który przyjmuje konkretny typ MIME (np."image/png"
), zgodnie z wymaganiamiIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) OnBackPressedDispatcherOwner
powiązany z widokiem można teraz pobrać za pomocąViewTreeOnBackPressedDispatcherOwner
, zamiast polegać na rzutowaniuContext
. (I74685)
Poprawki błędów
- Naprawiono błąd powodujący awarię podczas pierwszego dostępu do
ViewModel
z wywołania zwrotnegoregisterForActivityResult()
lub wywołań zwrotnych doLifecycleObserver
dodanych w ramachinit
ComponentActivity
. (Ife83f)
Wersja 1.4.0
Wersja 1.4.0
27 października 2021 roku
androidx.activity:activity:1.4.0
, androidx.activity:activity-compose:1.4.0
i androidx.activity:activity-ktx:1.4.0
są zwalniane. Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji 1.3.0
- AndroidX
ComponentActivity
implementuje teraz interfejsMenuHost
. Dzięki temu każdy komponent może dodawać elementy menu doActionBar
, dodając do aktywności instancjęMenuProvider
. Każdy elementMenuProvider
można opcjonalnie dodać za pomocą elementuLifecycle
, który będzie automatycznie kontrolować widoczność tych pozycji menu na podstawie stanu elementuLifecycle
i obsługiwać usuwanie elementuMenuProvider
po zniszczeniu elementuLifecycle
. - Klasa
ActivityResultContract
została przepisana w języku Kotlin, aby deweloperzy piszący niestandardowe umowy w tym języku mogli określać prawidłową wartość null dla klas wejściowych i wyjściowych. - Klasa
ActivityResultContracts
i jej kontrakty zostały przepisane w języku Kotlin, aby zapewnić prawidłową wartość null.
Wersja 1.4.0-rc01
13 października 2021 r.
androidx.activity:activity:1.4.0-rc01
, androidx.activity:activity-compose:1.4.0-rc01
i androidx.activity:activity-ktx:1.4.0-rc01
są zwalniane. Wersja 1.4.0-rc01 zawiera te zmiany.
Poprawki błędów
- Funkcja
ActivityResultRegistry
nie będzie już zwracać wyniku do funkcjiActivityResultCallback
, gdy wywołanielaunch
spowoduje błądException
. (If4f91, b/200845664)
Wersja 1.4.0-beta01
29 września 2021 r.
androidx.activity:activity:1.4.0-beta01
, androidx.activity:activity-compose:1.4.0-beta01
i androidx.activity:activity-ktx:1.4.0-beta01
są zwalniane. Wersja 1.4.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Naprawiono typy parametrów
ActivityResultContracts.OpenMultipleDocuments
iActivityResultContracts.GetMultipleContents
, które powodowały, że podczas korzystania z kodu w języku Java używany był typ wyjściowyList<? extends Uri>
. (If71de) - Stałe publiczne w klasach
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
iActivityResultContracts.RequestMultiplePermissions
są teraz dostępne podczas korzystania z Kotlin za pomocą ich publicznych obiektówCompanion
. (aosp/1832555)
Aktualizacje dokumentacji
- Komunikaty o wycofaniu interfejsów API, które są teraz obsługiwane przez interfejsy API wyników aktywności, czyli
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
ionRequestPermissionsResult
, zostały rozszerzone o dodatkowe szczegóły. (cce80f)
Wersja 1.4.0-alpha02
15 września 2021 r.
androidx.activity:activity:1.4.0-alpha02
, androidx.activity:activity-compose:1.4.0-alpha02
i androidx.activity:activity-ktx:1.4.0-alpha02
są zwalniane. Wersja 1.4.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Artefakt
activity-compose
zawiera teraz błąd lintowaniaLaunchDuringComposition
, który uniemożliwia wywoływanie metodylaunch
elementuActivityResultLauncher
w ramach kompozycji, ponieważ kompozycja powinna być wolna od efektów ubocznych. Używaj interfejsów API do obsługi efektów ubocznych. (7c2bbe, b/191347220)
Zmiany w interfejsie API
- Klasa
ActivityResultContract
została przepisana w języku Kotlin, aby deweloperzy piszący niestandardowe umowy w tym języku mogli określać prawidłową wartość null dla klas wejściowych i wyjściowych. (I8a8f5) - Klasa
ActivityResultContracts
i jej kontrakty zostały przepisane w języku Kotlin, aby zapewnić prawidłową wartość null. (I69802)
Wersja 1.4.0-alpha01
1 września 2021 roku
androidx.activity:activity:1.4.0-alpha01
, androidx.activity:activity-compose:1.4.0-alpha01
i androidx.activity:activity-ktx:1.4.0-alpha01
są zwalniane. Wersja 1.4.0-alpha01 zawiera te zmiany.
Nowe funkcje
- AndroidX
ComponentActivity
implementuje teraz interfejsMenuHost
. Dzięki temu każdy komponent może dodawać elementy menu doActionBar
, dodając do aktywności instancjęMenuProvider
. Każdy elementMenuProvider
można opcjonalnie dodać za pomocą elementuLifecycle
, który będzie automatycznie kontrolować widoczność tych pozycji menu na podstawie stanu elementuLifecycle
i obsługiwać usuwanie elementuMenuProvider
po zniszczeniu elementuLifecycle
. (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 zachowaniu
- Funkcja
ActivityResultRegistry
będzie teraz zgłaszać wyjątekIllegalStateException
podczas próby wywołania funkcjilaunch()
na urządzeniuActivityResultLauncher
, które nie zostało zarejestrowane lub zostało wyrejestrowane. (Ida75d, b/192567522)
Wkład zewnętrzny
Wersja 1.3.1
Wersja 1.3.1
4 sierpnia 2021 r.
androidx.activity:activity:1.3.1
, androidx.activity:activity-compose:1.3.1
i androidx.activity:activity-ktx:1.3.1
są zwalniane. Wersja 1.3.1 zawiera te zmiany.
Aktualizacje zależności
- Aktywność zależy teraz od Kotlin
1.5.21
. - Activity Compose zależy teraz od Compose
1.0.1
.
Wersja 1.3.0
Wersja 1.3.0
28 lipca 2021 roku
androidx.activity:activity:1.3.0
, androidx.activity:activity-compose:1.3.0
i androidx.activity:activity-ktx:1.3.0
są zwalniane. Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Artefakt Activity Compose – artefakt
activity-compose
udostępnia metodę rozszerzeniasetContent
do hostowania interfejsu Jetpack Compose w aktywności oraz specjalne otoki Compose do interakcji z interfejsami APIComponentActivity
do obsługi systemowego przycisku Wstecz i interfejsami Activity Result API. Więcej informacji znajdziesz w dokumentacji. - Umowa CaptureVideo – umowa
CaptureVideo
ActivityResultContract
zastępuje wycofaną już umowęTakeVideo
i zwraca wartość logiczną oznaczającą powodzenie, która działa w wielu aplikacjach aparatu. - Śledzenie widoku podpowiedzi obrazu w obrazie – użytkownicy
activity-ktx
mogą teraz używać metody rozszerzeniatrackPipAnimationHintView
naActivity
, aby automatycznie przebudowywaćPictureInPictureParams
z nową pozycją widoku, gdy zmienia on pozycję względem okna.
Wersja 1.3.0-rc02
14 lipca 2021 roku
androidx.activity:activity:1.3.0-rc02
, androidx.activity:activity-compose:1.3.0-rc02
i androidx.activity:activity-ktx:1.3.0-rc02
są zwalniane. Wersja 1.3.0-rc02 zawiera te zmiany.
Poprawki błędów
- Wywołania zwrotne
ActivityResultRegistry
są teraz prawidłowo zapisywane i przywracane, dzięki czemu nie są duplikowane w savedState. (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
są udostępniane bez zmian w stosunku do wersji 1.3.0-beta02
. Wersja 1.3.0-rc01 zawiera te zmiany.
Wersja 1.3.0-beta02
16 czerwca 2021 r.
androidx.activity:activity:1.3.0-beta02
, androidx.activity:activity-compose:1.3.0-beta02
i androidx.activity:activity-ktx:1.3.0-beta02
są zwalniane. Wersja 1.3.0-beta02 zawiera te zmiany.
Zaktualizowano activity-compose
, aby zależało od Compose 1.0.0-beta09
. androidx.compose.ui:ui-test-junit4
ma teraz zależność w czasie kompilacji od activity-compose
.
Wersja 1.3.0-beta01
2 czerwca 2021 r.
androidx.activity:activity:1.3.0-beta01
, androidx.activity:activity-compose:1.3.0-beta01
i androidx.activity:activity-ktx:1.3.0-beta01
są zwalniane. Wersja 1.3.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofana wcześniej metoda
@Composable registerForActivityResult()
została usunięta. UżyjrememberLauncherForActivityResult()
. (Ic39d3)
Wersja 1.3.0-alpha08
18 maja 2021 r.
androidx.activity:activity:1.3.0-alpha08
, androidx.activity:activity-compose:1.3.0-alpha08
i androidx.activity:activity-ktx:1.3.0-alpha08
są zwalniane. Wersja 1.3.0-alpha08 zawiera te zmiany.
Nowe funkcje
- Nowa funkcja
CaptureVideo
ActivityResultContract
zwraca wartość logiczną do funkcjiActivityResultCallback
, która wskazuje, czy film został zapisany pod podanym identyfikatorem URI. Zastępuje to obecnie wycofany kontraktTakeVideo
, ponieważ aplikacje aparatu bardzo rzadko obsługiwały zwracanie miniatury bitmapy, co sprawiało, że wynik był bezużyteczny. (Ie21f2, b/185938070) - Dodano nowy interfejs API
Activity#setPipAnimationHintView
do aktualizowania wskazówki dotyczącej prostokąta źródłowego parametru PipParams za każdym razem, gdy widok się przesuwa. (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 funkcjęrememberLauncherForActivityResult
. (I2443e)
Zgodność z Compose
androidx.activity:activity-compose:1.3.0-alpha08
jest zgodny tylko z Compose w wersji1.0.0-beta07
lub nowszej.
Wersja 1.3.0-alpha07
21 kwietnia 2021 r.
androidx.activity:activity:1.3.0-alpha07
, androidx.activity:activity-compose:1.3.0-alpha07
i androidx.activity:activity-ktx:1.3.0-alpha07
są zwalniane. Wersja 1.3.0-alpha07 zawiera te zmiany.
Poprawki błędów
rememberLauncherForActivityResult
zwraca teraz stabilne odwołanie do tej samej instancji, nawet jeśli umowa ulegnie zmianie z powodu ponownego zestawienia.ActivityResultLauncher
(Id2d6d)- Używanie niestabilnych wersji Fragmentów powyżej
1.3.0
nie będzie już powodować błędu fałszywie pozytywnego, który sugeruje użycie1.3.0
. (aosp/1670206, b/184847092)
Wersja 1.3.0-alpha06
7 kwietnia 2021 r.
androidx.activity:activity:1.3.0-alpha06
, androidx.activity:activity-compose:1.3.0-alpha06
i androidx.activity:activity-ktx:1.3.0-alpha06
są zwalniane. Wersja 1.3.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Nazwa interfejsu
registerForActivityResult()
została zmieniona narememberLauncherForActivityResult()
, aby lepiej wskazywać, że zwracany obiektActivityResultLauncher
jest obiektem zarządzanym, który jest zapamiętywany w Twoim imieniu. Próba wywołania funkcjiunregister
, która zwraca wartośćActivityResultLauncher
, spowoduje teraz błąd. (I2bb6d) LocalOnBackPressedDispatcherOwner.current
iLocalActivityResultRegistryOwner.current
zwracają teraz wartość dopuszczającą wartość null, aby lepiej określić, czy jest ona dostępna w bieżącej kompozycji. Interfejsy API, które wymagają tych interfejsów, np.BackHandler
irememberLauncherForActivityResult()
, będą teraz zgłaszać bardziej opisowy błąd, jeśli nie zostanie znaleziony właściciel bazowy.NavHost
działa teraz nawet wtedy, gdy nie można znaleźćOnBackPressedDispatcherOwner
, np. podczas wyświetlania podgląduNavHost
. (I7d8b4)
Poprawki błędów
BackHandler
będzie teraz prawidłowo przechwytywać naciśnięcia przycisku Wstecz, jeśli aktywność jestSTOPPED
, a potem ponownieSTARTED
. Dodaliśmy też inne wywołania zwrotne z właścicielem cyklu życia. (I71de6, b/182284739)- Używanie rozszerzenia metody
launch()
z niestandardowymActivityResultContract
, które ma dane wejścioweUnit
, nie będzie już powodować błęduNullPointerException
(I76282, b/183837954).
Wersja 1.3.0-alpha05
24 marca 2021 r.
androidx.activity:activity:1.3.0-alpha05
, androidx.activity:activity-compose:1.3.0-alpha05
i androidx.activity:activity-ktx:1.3.0-alpha05
są zwalniane. Wersja 1.3.0-alpha05 zawiera te zmiany.
Poprawki błędów
- W Activity 1.2.2: naprawiono problem w sprawdzaniu kodu
InvalidFragmentVersionForActivityResult
, który powodował fałszywie dodatni wynik podczas korzystania z Fragmentu 1.3.1 lub nowszego. (I54da1, b/182388985) - W Activity 1.2.2:
ComponentActivity
unika terazClassNotFoundException
podczas uruchamianiaIntent
zActivityResultContract
, który był wcześniej przechowywany jako dodatkowy w innymIntent
. (Ieff05, b/182906230)
Aktualizacje zależności
- Z Activity 1.2.2: aktywność zależy teraz od cyklu życia
2.3.1
.
Wersja 1.3.0-alpha04
10 marca 2021 r.
androidx.activity:activity:1.3.0-alpha04
, androidx.activity:activity-compose:1.3.0-alpha04
i androidx.activity:activity-ktx:1.3.0-alpha04
są zwalniane. Wersja 1.3.0-alpha04 zawiera te zmiany.
Poprawki błędów
- W sekcji Aktywność
1.2.1
:RequestMultiplePermissions
zawsze zwraca wyniki dla wszystkich żądanych uprawnień, a nie tylko dla tych, które nie zostały wcześniej przyznane. (I50bc3, b/180884668) - W sekcji Aktywność
1.2.1
:ActivityResultRegistry
teraz masz pewność, że trwającelaunch()
żądania zwrócą wyniki nawet wtedy, gdyunregister()
, a potem ponownieregister()
z tym samym kluczem. (I9ef34, b/181267562) - Biblioteka Activity Compose nie dodaje już zależności testowych do ścieżki klas środowiska wykonawczego. (Ifd8b3)
- Rozwiązaliśmy problem z funkcją
BackHandler
, który powodował, że po ponownym skomponowaniu nadal była używana wcześniej ustawiona lambdaonBack
. (8eb5eb)
Wersja 1.3.0-alpha03
24 lutego 2021 r.
androidx.activity:activity:1.3.0-alpha03
, androidx.activity:activity-compose:1.3.0-alpha03
i androidx.activity:activity-ktx:1.3.0-alpha03
są zwalniane. Wersja 1.3.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dostępna jest teraz funkcja
registerForActivityResult
typu „composable”, która umożliwia uzyskiwanie wyników z aktywności w funkcjach typu „composable”. (Ia7851, b/172690553)
Zmiany w interfejsie API
LocalOnBackPressedDispatcherOwner
ma teraz funkcjeprovides
, których można używać zCompositionLocalProvider
. Zastępują one interfejsasProvidableCompositionLocal()
API. (I45d24)
Wersja 1.3.0-alpha02
10 lutego 2021 r.
androidx.activity:activity:1.3.0-alpha02
, androidx.activity:activity-compose:1.3.0-alpha02
i androidx.activity:activity-ktx:1.3.0-alpha02
są zwalniane. Wersja 1.3.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem w Activity Compose
1.3.0-alpha01
, który powodował wyjątekNoSuchMethodError: No static method setContent
podczas korzystania z Compose1.0.0-alpha12
. Wszyscy użytkownicy Compose powinni korzystać z wersji1.3.0-alpha02
lub nowszej. (b/179911234)
Zmiany w interfejsie API
- Interfejs
BackHandler
API umożliwia komponentowi Composable przechwytywanie systemowego przycisku Wstecz. (I58ed5, b/172154006)
Wersja 1.3.0-alpha01
10 lutego 2021 r.
androidx.activity:activity:1.3.0-alpha01
, androidx.activity:activity-compose:1.3.0-alpha01
i androidx.activity:activity-ktx:1.3.0-alpha01
są zwalniane. Wersja 1.3.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Nowy artefakt
activity-compose
zawiera pomocnicze funkcje Jetpack Compose dla interfejsów APIandroidx.activity
.ComponentActivity.setContent
został przeniesiony zandroidx.compose.ui.platform.setContent
doandroidx.activity.compose.setContent
. (Icf416)
Znane problemy
- Używanie Activity Compose
1.3.0-alpha01
i bibliotek, które od niej zależą, np.androidx.compose.ui:ui-test-junit4:1.0.0-alpha12
, spowoduje wyjątekNoSuchMethodError: No static method setContent
. (b/179911234)
Wersja 1.2.4
Wersja 1.2.4
21 lipca 2021 r.
androidx.activity:activity:1.2.4
i androidx.activity:activity-ktx:1.2.4
zostały opublikowane. Wersja 1.2.4 zawiera te zmiany.
Poprawki błędów
- W sekcji Aktywność
1.3.0-rc02
: wywołania zwrotne ActivityResultRegistry są teraz prawidłowo zapisywane i przywracane, dzięki czemu nie są duplikowane w savedState. (I97816, b/191893160)
Wersja 1.2.3
Wersja 1.2.3
5 maja 2021 roku
androidx.activity:activity:1.2.3
i androidx.activity:activity-ktx:1.2.3
zostały opublikowane. Wersja 1.2.3 zawiera te zmiany.
Poprawki błędów
- Używanie rozszerzenia metody
launch()
z niestandardowymActivityResultContract
, które ma dane wejścioweUnit
, nie będzie już powodować błęduNullPointerException
(I76282, b/183837954). - Naprawiono błąd fałszywie dodatni narzędzia lint, który sugerował użycie fragmentu
1.3.0
podczas korzystania z wersji zrzutu, alfa, beta lub RC nowszej wersji biblioteki Fragment. (f4a57e, b/184847092)
Wersja 1.2.2
Wersja 1.2.2
24 marca 2021 r.
androidx.activity:activity:1.2.2
i androidx.activity:activity-ktx:1.2.2
zostały opublikowane. Wersja 1.2.2 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem w
InvalidFragmentVersionForActivityResult
, który powodował fałszywie pozytywny wynik podczas korzystania z biblioteki Fragment w wersji 1.3.1 lub nowszej. (I54da1, b/182388985) ComponentActivity
unika terazClassNotFoundException
podczas uruchamianiaIntent
zActivityResultContract
, który był wcześniej przechowywany jako dodatkowy w innymIntent
. (Ieff05, b/182906230)
Aktualizacje zależności
- Aktywność zależy teraz od cyklu życia
2.3.1
.
Wersja 1.2.1
Wersja 1.2.1
10 marca 2021 r.
androidx.activity:activity:1.2.1
i androidx.activity:activity-ktx:1.2.1
zostały opublikowane. Wersja 1.2.1 zawiera te zmiany.
Poprawki błędów
RequestMultiplePermissions
zawsze zwraca wyniki dla wszystkich żądanych uprawnień, a nie tylko dla tych, które nie zostały wcześniej przyznane. (I50bc3, b/180884668)ActivityResultRegistry
zapewnia teraz, że trwające żądanialaunch()
zwrócą wyniki nawet wtedy, gdyunregister()
, a potem ponownieregister()
przy użyciu tego samego klucza. (I9ef34, b/181267562)
Wersja 1.2.0
Wersja 1.2.0
10 lutego 2021 r.
androidx.activity:activity:1.2.0
i androidx.activity:activity-ktx:1.2.0
zostały opublikowane. Wersja 1.2.0 zawiera te zmiany.
Główne zmiany od wersji 1.1.0
- Interfejsy API wyników aktywności:
ComponentActivity
udostępniają terazActivityResultRegistry
, który umożliwia obsługę przepływówstartActivityForResult()
+onActivityResult()
irequestPermissions()
+onRequestPermissionsResult()
bez zastępowania metod w aktywności lub fragmencie, zwiększa bezpieczeństwo typów za pomocąActivityResultContract
i zapewnia punkty zaczepienia do testowania tych przepływów. Zapoznaj się z aktualizacją artykułu Uzyskiwanie wyniku z aktywności.
ContextAware
:ComponentActivity
implementuje terazContextAware
, co umożliwia dodanie co najmniej 1 instancjiOnContextAvailableListener
, która będzie otrzymywać wywołanie zwrotne przed podstawową instancjąActivity.onCreate()
.- Zawieszające rozszerzenie Kotlin
withContextAvailable()
umożliwia uruchomienie bloku niezawieszającego, gdy kontekst stanie się dostępny, i zwrócenie wyniku. - Ten interfejs API jest używany przez
FragmentActivity
w fragmencie 1.3.0 do przywracania stanuFragmentManager
. Wszyscy detektorzy dodani do podklasFragmentActivity
będą uruchamiani po tym detektorze. - Ten interfejs API jest używany przez
AppCompatActivity
w AppCompat 1.3.0-alpha02 lub nowszym. Wszyscy detektorzy dodani do podklasAppCompatActivity
będą uruchamiani po tym detektorze.
- Zawieszające rozszerzenie Kotlin
ViewTree
Support:ComponentActivity
obsługuje teraz interfejsy APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
iViewTreeSavedStateRegistryOwner
dodane w Lifecycle2.3.0
i SavedState1.1.0
, dzięki czemu zwraca aktywność jakoLifecycleOwner
,ViewModelStoreOwner
iSavedStateRegistryOwner
dla wszystkich widoków dodanych bezpośrednio doComponentActivity
.
- Wsteczna implementacja metody reportFullyDrawn() – metoda
Activity
klasyreportFullyDrawn()
została wstecznie zaimplementowana wComponentActivity
, aby działać na wszystkich poziomach API. Rozwiązuje to problem z awarią na poziomie API 19 i dodaje śledzenie tej metody na wszystkich poziomach API.
Wersja 1.2.0-rc01
16 grudnia 2020 roku
androidx.activity:activity:1.2.0-rc01
i androidx.activity:activity-ktx:1.2.0-rc01
zostały opublikowane. Wersja 1.2.0-rc01 zawiera te zmiany.
Poprawki błędów
- Funkcja
ActivityResultRegistry
zawsze przywraca dokładny stan, który został zapisany. (Idd56b) - Dodawanie śledzenia do
ComponentActivity.reportFullyDrawn
(Ic7632)
Wkład zewnętrzny
ComponentActivity
zastępuje terazreportFullyDrawn()
, co umożliwia wywoływanie go na wszystkich poziomach interfejsu API i eliminuje awarię podczas wywoływania tej metody bez odpowiedniego uprawnienia systemowego na urządzeniach z interfejsem API 19. Dziękujemy Simonowi Schillerowi! (b/163239764, #103)
Wersja 1.2.0-beta02
2 grudnia 2020 r.
androidx.activity:activity:1.2.0-beta02
i androidx.activity:activity-ktx:1.2.0-beta02
zostały opublikowane. Wersja 1.2.0-beta02 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że interfejs Activity Result API nie czekał na przejście cyklu życia do stanu
STARTED
przed dostarczeniem wyników, gdy był zarejestrowany wLifecycle
. (I109ea)
Wkład zewnętrzny
- Zaktualizowaliśmy dokumentację dotyczącą funkcji
launch()
, aby wyraźnie zaznaczyć, że może ona zgłaszać wyjątekActivityNotFoundException
. Dziękujemy Michałowi Zielińskiemu! (aosp/1493580)
Wersja 1.2.0-beta01
1 października 2020 roku
androidx.activity:activity:1.2.0-beta01
i androidx.activity:activity-ktx:1.2.0-beta01
zostały opublikowane. Wersja 1.2.0-beta01 zawiera te zmiany.
Poprawki błędów
Funkcja
ActivityResultRegistry
losowo generuje liczby całkowite, dopóki nie znajdzie liczby, która nie jest jeszcze przypisana, aby użyć jej jako kodu żądaniaregister()
. Zapobiega to możliwemu przepełnieniu liczby całkowitej spowodowanemu zwiększaniem kodów żądań. (b/168779518)Lifecycle
obserwatorzy są prawidłowo usuwani podczas wywoływaniaunregister()
naActivityResultLauncher
. (b/165608393)
Zmiany w zachowaniu
ActivityResultRegistry
zgłasza terazIllegalStateException
podczas próby wywołaniaregister()
za pomocąLifecycleOwner
, któregoLifecycle
osiągnął już wartośćSTARTED
. (b/165435866)
Zaktualizowana dokumentacja
ContextAware
dokumentacjiLifecycleOwner
, aby podkreślić, żeLifecycle
wywołania zwrotne są odpowiednim miejscem dla zdarzeń tworzenia i usuwania. (aosp/1414152)
Wersja 1.2.0-alpha08
19 sierpnia 2020 r.
androidx.activity:activity:1.2.0-alpha08
i androidx.activity:activity-ktx:1.2.0-alpha08
zostały opublikowane. Wersja 1.2.0-alpha08 zawiera te zmiany.
Nowe funkcje
ComponentActivity
implementuje terazContextAware
, co umożliwia dodanie co najmniej 1 instancjiOnContextAvailableListener
, która otrzyma wywołanie zwrotne przed podstawową instancjąActivity.onCreate()
. (b/161390636)- Zawieszające rozszerzenie Kotlin
withContextAvailable()
umożliwia uruchomienie bloku niezawieszającego, gdy kontekst stanie się dostępny, i zwrócenie wyniku. (I8290c) - Ten interfejs API jest używany przez
FragmentActivity
w fragmencie 1.3.0-alpha08 do przywracania stanuFragmentManager
. Wszyscy detektorzy dodani do podklasFragmentActivity
będą uruchamiani po tym detektorze. (I513da) - Ten interfejs API jest używany przez
AppCompatActivity
w AppCompat 1.3.0-alpha02. Wszyscy detektorzy dodani do podklasAppCompatActivity
będą uruchamiani po tym detektorze. (I513da)
- Zawieszające rozszerzenie Kotlin
Poprawki błędów
- Rozwiązaliśmy problem z
ActivityResultFragmentVersionDetector
sprawdzaniem Lint, który powodował awarię podczas korzystania z Lint w wersji 27.1.0 lub nowszej. (b/162155191)
Wersja 1.2.0-alpha07
22 lipca 2020 r.
androidx.activity:activity:1.2.0-alpha07
i androidx.activity:activity-ktx:1.2.0-alpha07
zostały opublikowane. Wersja 1.2.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy nowe
InvalidFragmentVersionForActivityResult
sprawdzanie lint, które weryfikuje, czy podczas korzystania z interfejsu Activity Result API używasz fragmentu1.3.0-alpha07
. Pozwala to uniknąć awarii w czasie działania spowodowanych problemami z „nieprawidłowym kodem żądania” i nieprawidłowym działaniem próśb o uprawnienia wynikającym z używania starszych wersji fragmentów. (b/152554847)
Wkład zewnętrzny
- Naprawiono
ArrayIndexOutOfBoundsException
podczas analizowania wyników kontraktuRequestPermission
Activity Result. (I8f9e3, b/161057605)
Wersja 1.2.0-alpha06
10 czerwca 2020 r.
androidx.activity:activity:1.2.0-alpha06
i androidx.activity:activity-ktx:1.2.0-alpha06
zostały opublikowane. Wersja 1.2.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Możesz teraz rozłożyć klasę
ActivityResult
w Kotlinie, aby uzyskać bezpośredni dostęp dorequestCode
iintent
. (b/157212935) ActivityResultLauncher
umożliwia teraz uzyskanieActivityResultContract
, który został użyty do zarejestrowania launchera. (b/156875743)
Zmiany w interfejsie API
- Zmiana powodująca niezgodność: metoda
invoke()
wActivityResultRegistry
została zmieniona naonLaunch()
. (b/157496491) OpenMultipleDocuments
kontrakt zwraca teraz pustą listę zamiastnull
do zarejestrowanego wywołania zwrotnego, jeśli nie zostanie zwrócony żaden wynik. (b/157348014)
Wersja 1.2.0-alpha05
20 maja 2020 r.
androidx.activity:activity:1.2.0-alpha05
i androidx.activity:activity-ktx:1.2.0-alpha05
zostały opublikowane. Wersja 1.2.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę właściwości
ViewTreeViewModelStoreOwner
z Lifecycle2.3.0-alpha03
iViewTreeSavedStateRegistryOwner
z SavedState1.1.0-alpha01
podczas używania elementuView
w ramach elementuComponentActivity
. (aosp/1297993, aosp/1300264)
Zmiany w interfejsie API
TakePicture
umowa zwraca terazboolean
wskazującą powodzenie, a nie miniaturęBitmap
, ponieważ bardzo rzadko była ona obsługiwana przez aplikacje aparatu podczas zapisywania obrazu w podanymUri
. (b/154302879)- Rozszerzenia
invoke()
wActivityResultLauncher
zostały usunięte na rzecz jawnego używanialaunch()
, aby lepiej wskazywać, że są to operacje asynchroniczne. Do pakietuandroidx.activity.result
dlaActivityResultLauncher<Void>
iActivityResultLauncher<Unit>
dodaliśmy rozszerzenia Kotlin dlalaunch
, które eliminują konieczność przekazywania odpowiednionull
lubUnit
, co odzwierciedla działanie poprzednich rozszerzeńinvoke()
. (aosp/1304674, aosp/1304675) - Metody
IntentSenderRequest.Builder
dlasetFlagsMask()
isetFlagsValues()
zostały połączone w jedną metodęsetFlags()
. (aosp/1302111)
Poprawki błędów
- Podczas rejestrowania
ActivityResultCallback
za pomocąLifecycleOwner
rozwiązaliśmy problem polegający na tym, że wywołanie zwrotne było wywoływane, zanim stan osiągnął wartośćSTARTED
. (aosp/1309744)
Zmiany w zachowaniu
ActivityResultRegistry
generuje teraz kody żądań, zaczynając od0xFFFF
zamiast od0
, co zapobiega nakładaniu się kodów podczas używaniastartActivityForResult()
lubrequestPermissions()
w aktywności. (aosp/1302324)
Wersja 1.2.0-alpha04
29 kwietnia 2020 r.
androidx.activity:activity:1.2.0-alpha04
i androidx.activity:activity-ktx:1.2.0-alpha04
zostały opublikowane. Wersja 1.2.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Dodano kontrakt, który może wywoływać metodę startIntentSenderForResult w interfejsach API ActivityResult. (b/153007517)
Zmiany w interfejsie API
- Metoda
prepareCall()
została zmieniona naregisterForActivityResult()
zarówno wComponentActivity
, jak i w fragmencie1.3.0-alpha04
. (aosp/1278717) - Umowy
GetContents
,OpenDocuments
iRequestPermissions
zostały zmienione naGetMultipleContents
,OpenMultipleDocuments
iRequestMultiplePermissions
. (aosp/1280161) ComponentActivity
implementuje teraz interfejsActivityResultRegisteryOwner
. (aosp/1290888)- – Interfejsy API
startActivityForResult()
/onActivityResult()
ionRequestPermissionsResult()
na platformieComponentActivity
zostały wycofane. Użyj interfejsów Activity Result API. (b/154751887)
Poprawki błędów
- W przypadku korzystania z umów
GetMultipleContents
iOpenMultipleDocuments
oraz wybrania pojedynczego elementu jest on teraz prawidłowo zwracany do wywołania zwrotnego. (b/152941153)
Wersja 1.2.0-alpha03
1 kwietnia 2020 r.
androidx.activity:activity:1.2.0-alpha03
i androidx.activity:activity-ktx:1.2.0-alpha03
zostały opublikowane. Wersja 1.2.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy do zestawu gotowych umów udostępnianych przez
ActivityResultContracts
umowyTakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
iCreateDocument
. (aosp/1262482, aosp/1266916, aosp/1268960) - Interfejsy API Activity Result obsługują teraz uruchamianie aktywności w celu uzyskania wyniku z opcjonalnym
ActivityOptionsCompat
. (b/151860054)
Zmiany w interfejsie API
TakePicture
kontrakt przyjmuje terazUri
jako dane wejściowe miejsce, w którym ma być przechowywany obraz. Poprzednia umowa, która nie przyjmuje żadnych danych wejściowych, została zmieniona naTakePicturePreview
. (aosp/1262482)- Metoda
registerActivityResultCallback()
w usłudzeActivityResultRegistry
została zmieniona naregister()
. (aosp/1267621) - Metoda
dispose()
wActivityResultLauncher
została zmieniona naunregister()
, a metodaunregisterResultCallback()
wActivityResultRegistry
została usunięta. (aosp/1267621) - Metoda
createIntent()
ActivityResultContact
przyjmuje terazContext
oprócz danych wejściowych, aby umożliwić tworzenie jawnych intencji. (aosp/1238800) ActivityResultContract
może teraz zastąpićgetSynchronousResult()
, aby dostarczyć wynik bez wywoływaniastartActivityForResult
. Jest on używany w przypadku umówRequestPermission
iRequestPermissions
, aby prawidłowo przekazywać stan „przyznano”, jeśli żądane uprawnienia zostały już przyznane. (b/151110799)- Wcześniej dostępna umowa
Dial
została usunięta, ponieważIntent
nie jest przeznaczony do używania zstartActivityForResult()
. (aosp/1266916) - Wiele interfejsów API wyników aktywności, które nie są przeznaczone do rozszerzania, jest teraz
final
. Obejmuje togetActivityResultRegistry()
, metodyprepareCall()
, wszystkie metodyActivityResultRegistry
z wyjątkieminvoke()
oraz kilka domyślnych umów, które nie obsługują opcjonalnych dodatków. (b/152439361)
Poprawki błędów
- Naprawiliśmy
NullPointerException
wActivityResultRegistry
, które występowało podczas próby dostarczenia wyników do wywołania zwrotnego, które nie zostało jeszcze ponownie zarejestrowane po zmianie konfiguracji.ActivityResultRegistry
przechowuje teraz te oczekujące wyniki i dostarcza je, gdy wywołanie zwrotne zostanie ponownie zarejestrowane. (b/152137004)
Wersja 1.2.0-alpha02
18 marca 2020 r.
androidx.activity:activity:1.2.0-alpha02
i androidx.activity:activity-ktx:1.2.0-alpha02
zostały opublikowane. Wersja 1.2.0-alpha02 zawiera te zmiany.
Nowe funkcje
- ActivityResultRegistry:
ComponentActivity
udostępnia terazActivityResultRegistry
, który umożliwia obsługę przepływówstartActivityForResult()
+onActivityResult()
irequestPermissions()
+onRequestPermissionsResult()
bez zastępowania metod w aktywności lub fragmencie. Zapewnia większe bezpieczeństwo typów dziękiActivityResultContract
i udostępnia punkty zaczepienia do testowania tych przepływów. Zapoznaj się z aktualizacją artykułu Uzyskiwanie wyniku z aktywności. (b/125158199)
Wersja 1.2.0-alpha01
4 marca 2020 r.
androidx.activity:activity:1.2.0-alpha01
i androidx.activity:activity-ktx:1.2.0-alpha01
zostały opublikowane. Wersja 1.2.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodano obsługę interfejsu
ViewTreeLifecycleOwner.get(View)
API dodanego w Lifecycle2.3.0-alpha01
, dzięki czemu zwraca on aktywność jakoLifecycleOwner
w przypadku wszystkich widoków dodanych bezpośrednio do aktywności. (aosp/1182955)
Poprawki błędów
- Rozwiązaliśmy problem, który pojawił się w Activity
1.1.0
w starszych wersjach platformy, gdzieonBackPressed()
powodowałIllegalStateException
z powodu błędu wandroid.app.FragmentManager
. (b/146290338)
Wersja 1.1.0
Wersja 1.1.0
22 stycznia 2020 r.
Zostanie wycofaneandroidx.activity:activity:1.1.0
Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- Integracja ViewModelu cyklu życia z SavedState:
SavedStateViewModelFactory
jest teraz domyślną fabryką używaną w przypadku korzystania zby viewModels()
, konstruktoraViewModelProvider
lubViewModelProviders.of()
zComponentActivity
lub jego podklasami.
Wersja 1.1.0-rc03
4 grudnia 2019
androidx.activity:activity:1.1.0-rc03
i androidx.activity:activity-ktx:1.1.0-rc03
zostały opublikowane. Wersja 1.1.0-rc03 zawiera te zmiany.
Zmiany zależności
- Aktywność zależy teraz od komponentu Lifecycle
2.2.0-rc03
i komponentu Lifecycle ViewModel SavedState1.0.0-rc03
.
Wersja 1.1.0-rc02
7 listopada 2019 r.
androidx.activity:activity:1.1.0-rc02
i androidx.activity:activity-ktx:1.1.0-rc02
zostały opublikowane. Wersja 1.1.0-rc02 zawiera te zmiany.
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.
androidx.activity:activity:1.1.0-rc01
i androidx.activity:activity-ktx:1.1.0-rc01
są udostępniane bez zmian w stosunku do 1.1.0-beta01
. Wersja 1.1.0-rc01 zawiera te zmiany.
Wersja 1.1.0-beta01
9 października 2019 r.
androidx.activity:activity:1.1.0-beta01
i androidx.activity:activity-ktx:1.1.0-beta01
zostały opublikowane. Wersja 1.1.0-beta01 zawiera te zmiany.
Zmiany zależności
- Aktywność zależy teraz od stabilnej wersji SavedState 1.0.0.
Wersja 1.1.0-alpha03
5 września 2019 r.
androidx.activity:activity:1.1.0-alpha03
i androidx.activity:activity-ktx:1.1.0-alpha03
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Nowe funkcje
- Aktywność zależy teraz od stabilnej wersji Core 1.1.0.
Poprawki błędów
- Aktywność zależy teraz od cyklu życia
2.2.0-alpha04
.
Wersja 1.1.0-alpha02
7 sierpnia 2019 r.
androidx.activity:activity:1.1.0-alpha02
i androidx.activity:activity-ktx:1.1.0-alpha02
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Nowe funkcje
SavedStateViewModelFactory
jest teraz domyślną fabryką używaną podczas korzystania zby viewModels()
, konstruktoraViewModelProvider
lubViewModelProviders.of()
zComponentActivity
(b/135716331).
Wersja 1.1.0-alpha01
2 lipca 2019 r.
androidx.activity:activity:1.1.0-alpha01
i androidx.activity:activity-ktx:1.1.0-alpha01
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Nowe funkcje
activity
zależy teraz od stanu2.2.0-alpha02
. (aosp/1007817)activity-ktx
dodano zależność odlifecycle-runtime-ktx
. Nie musisz już dodawać jej do zależności, gdy używaszactivity-ktx
lub bibliotek, które są od niej zależne (np.fragment-ktx
). (aosp/987162)activity-ktx
Wersja 1.0.0
Wersja 1.0.0
5 września 2019 r.
androidx.activity:activity:1.0.0
i androidx.activity:activity-ktx:1.0.0
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Główne funkcje wersji 1.0.0
- ComponentActivity:
ComponentActivity
służy jako nowa klasa bazowa dlaFragmentActivity
w fragmencie1.1.0
i w konsekwencji dlaAppCompatActivity
w AppCompat1.1.0
. - activity-ktx: moduł
activity-ktx
zawiera rozszerzenie właściwości Kotlinby viewModels
umożliwiające dostęp do ViewModeli. Ten moduł jest uwzględniany automatycznie, gdy dodaszfragment-ktx
z fragmentu1.1.0
. - OnBackPressedDispatcher: jako alternatywę dla zastępowania
onBackPressed()
możesz teraz zarejestrowaćOnBackPressedCallback
w dowolnymLifecycleOwner
(np. we fragmencie), aby przechwytywać zdarzenia systemowego przycisku Wstecz. Doactivity-ktx
dodano lambdę z wersją odbiorcyaddCallback
. Więcej informacji znajdziesz w dokumentacji dotyczącej zapewniania niestandardowej nawigacji wstecz. - Wycofanie metody onRetainCustomNonConfigurationInstance: interfejs API
onRetainCustomNonConfigurationInstance()
i powiązany z nim interfejs APIgetLastCustomNonConfigurationInstance()
zostały wycofane. Zdecydowanie zalecamy używanie ViewModeli do przechowywania stanu niekonfiguracyjnego, ponieważ oferują one rozwiązanie kompozycyjne odpowiednie dla każdegoViewModelStoreOwner
, które sprawia, że własność zachowanych obiektów jest jasna, i zapewnia wywołanie zwrotneonCleared()
do czyszczenia zasobów, gdy aktywność zostanie ostatecznie zniszczona.
Wersja 1.0.0-rc01
2 lipca 2019 r.
androidx.activity:activity:1.0.0-rc01
i androidx.activity:activity-ktx:1.0.0-rc01
są udostępniane bez zmian w stosunku do 1.0.0-beta01
. Listę zmian w tej wersji znajdziesz tutaj.
Wersja 1.0.0-beta01
5 czerwca 2019 r.
androidx.activity::activity:1.0.0-beta01
i androidx.activity:activity-ktx:1.0.0-beta01
są udostępniane bez zmian w stosunku do 1.0.0-alpha08
. Listę zmian w tej wersji znajdziesz tutaj.
Wersja 1.0.0-alpha08
7 maja 2019 r.
androidx.activity:activity:1.0.0-alpha08
i androidx.activity:activity-ktx:1.0.0-alpha08
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
- Zmiana powodująca niezgodność: usunięto wcześniej wycofane metody
addOnBackPressedCallback
iremoveOnBackPressedCallback
w klasieComponentActivity
. aosp/953857 - Metody
setEnabled()
iisEnabled()
interfejsuOnBackPressedCallback
są teraz ostateczne. b/131416833 - Metoda
remove()
wOnBackPressedCallback
jest już ostateczna. aosp/952720 OnBackPressedDispatcher
ma teraz publiczne konstruktory, które umożliwiają tworzenie własnych instancji na potrzeby testowania itp. aosp/953431onBackPressed()
dlaComponentActivity
jest teraz wyraźnie oznaczony jako@MainThread
aosp/952721
Poprawki błędów
- Rozwiązaliśmy problem z wywoływaniem funkcji
ConcurrentModificationException
podczas wywoływania funkcjiremove()
w metodziehandleOnBackPressed()
klasyOnBackPressedCalback
dodanej za pomocą funkcjiLifecycleOwner
. b/131765095
Wersja 1.0.0-alpha07
25 kwietnia 2019 r.
androidx.activity:activity:1.0.0-alpha07
i androidx.activity:activity-ktx:1.0.0-alpha07
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
Ta wersja wprowadza istotne zmiany w obsłudze onBackPressed()
. Więcej informacji znajdziesz w zaktualizowanej dokumentacji dotyczącej niestandardowego powrotu.
- Metody
OnBackPressedCallback
iOnBackPressedDispatcher
zostały oznaczone jako@MainThread
. (aosp/943813) - Metoda
handleOnBackPressed()
nie zwraca już wartościboolean
.OnBackPressedCallback
jest teraz klasą abstrakcyjną, którą można włączać i wyłączać. FunkcjahandleOnBackPressed()
jest wywoływana tylko wtedy, gdy nowa metodaisEnabled()
zwraca wartość true. W takim przypadku musisz obsługiwać przycisk Wstecz. (aosp/944518) - Metody
addCallback
wOnBackPressedDispatcher
nie zwracają już instancjiCancellable
.OnBackPressedCallback
zawierają teraz metodęremove()
, która spełnia tę funkcję, umożliwiając wywoływanieremove()
podczashandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
zawiera teraz wywołanie zwrotne w zakresie odbiornika dlaaddCallback
, które akceptuje lambdę implementującąhandleOnBackPressed()
i ma dostęp doisEnabled
iremove()
(aosp/944520).
Wersja 1.0.0-alpha06
3 kwietnia 2019 r.
androidx.activity:activity:1.0.0-alpha06
i androidx.activity:activity-ktx:1.0.0-alpha06
zostały opublikowane. Listę zmian w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
- Klasa ComponentActivity zawiera teraz drugi konstruktor, który przyjmuje wartość
@LayoutRes int
. Zastępuje on poprzednie zachowanie polegające na dodawaniu do klasy AppCompatActivity adnotacji@ContentView
. To podejście działa zarówno w modułach aplikacji, jak i biblioteki. (b/128352521) - Powiązane interfejsy API
OnBackPressedCallback
w klasie ComponentActivity zostały wycofane na rzecz nowego interfejsuOnBackPressedDispatcher
, który można pobrać za pomocągetOnBackPressedDispatcher()
. (aosp/922523) - Metody dodawania nowego elementu
OnBackPressedCallback
do elementuOnBackPressedDispatcher
zwracają teraz obiektCancellable
, co umożliwia usunięcie wywołania zwrotnego bez konieczności jawnego odwoływania się do elementuOnBackPressedDispatcher
. (aosp/922523) - Dodanie elementu
OnBackPressedCallback
z powiązanym elementemLifecycleOwner
powoduje teraz dodanie i usunięcie elementuOnBackPressedCallback
odpowiednio po rozpoczęciu i zakończeniu cyklu życia. (aosp/922523)
Wersja 1.0.0-alpha05
13 marca 2019 r.
androidx.activity:activity:1.0.0-alpha05
i androidx.activity:activity-ktx:1.0.0-alpha05
zostały opublikowane. Pełną listę zatwierdzeń
uwzględnionych w tej wersji znajdziesz tutaj.
Nowe funkcje
- Wyszukiwania adnotacji
@ContentView
są teraz buforowane (b/123709449).
Wersja 1.0.0-alpha04
30 stycznia 2019 r.
androidx.activity:activity 1.0.0-alpha04
i androidx.activity:activity-ktx 1.0.0-alpha04
zostaną opublikowane.
Nowe funkcje
- Dodano obsługę adnotacji klasy
@ContentView
, która umożliwia wskazanie, który plik XML układu ma zostać rozwinięty, zamiast używaćsetContentView()
. (aosp/837619)
Zmiany w interfejsie API
- Dodaliśmy informację, że wartości
getViewModelStore()
nie należy zastępować i w przyszłej wersji zostaną one ustalone na stałe. Jeśli obecnie zastępujesz tę metodę, prześlij prośbę o dodanie funkcji. (aosp/837619)
Poprawki błędów
- Moduł
activity
zależy teraz od wersji 2.1.0-alpha02 komponentu ViewModel, aby pasować do zależności modułuactivity-ktx
.
Wersja 1.0.0-alpha03
17 grudnia 2018 r.
Zostanie wycofaneandroidx.activity 1.0.0-alpha03
Nowe funkcje
- Klasa ComponentActivity implementuje teraz interfejs
BundleSavedStateRegistryOwner
i jest zależna od nowo wydanej biblioteki SavedState [aosp/815133]. - ComponentActivity rozwiązuje teraz problem z platformą Androida, który powodował wyciek ostatniego aktywnego widoku w InputMethodManager [b/37122102].
Wersja 1.0.0-alpha02
3 grudnia 2018 r.
Zmiany w interfejsie API
- Dodaliśmy informację, że nie należy zastępować wartości
getLifecycle()
, a w przyszłej wersji zostanie ona zmieniona nafinal
. Jeśli obecnie zastępujesz tę metodę, prześlij prośbę o dodanie funkcji. (aosp/815834)
Wersja 1.0.0-alpha01
5 listopada 2018 r.
androidx.activity 1.0.0-alpha01
wprowadza
ComponentActivity
, nową klasę bazową istniejących klas FragmentActivity
i
AppCompatActivity
.
Nowe funkcje
- Możesz teraz zarejestrować
OnBackPressedCallback
za pomocąaddOnBackPressedCallback
, aby otrzymywaćonBackPressed()
wywołania zwrotne bez konieczności zastępowania metody w aktywności. - Dodaliśmy nowy delegat właściwości Kotlin
by viewModels()
do pobieraniaViewModel
elementówViewModel
zComponentActivity
. - Oczekujące zdarzenia wejściowe (np. kliknięcia) są teraz anulowane w
onStop()
.
Zmiany w interfejsie API
- Implementacja funkcji
LifecycleOwner
iViewModelStoreOwner
została przeniesiona zFragmentActivity
doComponentActivity
. onRetainCustomNonConfigurationInstance
zostało wycofane. UżywajViewModel
do przechowywania obiektów, które muszą przetrwać zmiany konfiguracji.