0Pricing
Jetpack Compose Academy · Lekcja

Zakresy i cykle życia komponentów

Kontroluj, jak długo żyją zależności

Zakresy i cykle życia komponentów to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co kontroluje zakres

Zakres określa, jak długo Hilt utrzymuje przy życiu pojedynczą instancję i gdzie jest ona współdzielona. Chodzi o czas życia, a nie tylko o tworzenie.

Domyślnie bez zakresu

Bez adnotacji zakresu Hilt tworzy nową instancję za każdym razem, gdy jest ona żądana. To dobre rozwiązanie dla tanich, bezstanowych obiektów.

@Provides
fun provideMapper(): Mapper = Mapper() // fresh each time

Komponenty odzwierciedlają Androida

Hilt udostępnia zestaw komponentów odpowiadających czasowi życia elementów Androida — od całej aplikacji po pojedynczy widok. Każdy komponent zarządza własnymi instancjami.

W całej aplikacji dzięki Singleton

SingletonComponent istnieje tak długo jak aplikacja. Powiązania oznaczone tutaj @Singleton są tworzone raz i współdzielone na wszystkich ekranach.

@InstallIn(SingletonComponent::class)

Czas życia pojedynczego Activity

ActivityComponent jest powiązany z jednym Activity. Użyj @ActivityScoped, aby współdzielić instancję w ramach tego Activity i utworzyć ją ponownie dla nowego.

@ActivityScoped
class FormState @Inject constructor()

Zakres ViewModel

ViewModelComponent odpowiada czasowi życia ViewModel. Dzięki @ViewModelScoped zależność jest współdzielona tylko w obrębie tego jednego ViewModel.

@ViewModelScoped
class SessionCache @Inject constructor()

Zakres to adnotacja i komponent

Każda adnotacja zakresu jest przypisana do jednego komponentu. @Singleton łączy się z SingletonComponent, @ActivityScoped z ActivityComponent i tak dalej.

Czasy życia tworzą hierarchię

Komponenty są zagnieżdżone: Activity znajduje się wewnątrz aplikacji, a Fragment wewnątrz Activity. Element podrzędny może korzystać ze wszystkiego, co udostępniają jego elementy nadrzędne.

Stosuj zakresy rozważnie

Używanie zakresów kosztuje pamięć, ponieważ instancja jest przechowywana do czasu zniszczenia komponentu. Zakres stosuj tylko dla obiektów, których stan rzeczywiście musi być współdzielony.

Unikaj wycieku z szerszego zakresu

Nigdy nie wstrzykuj krótkotrwałego obiektu, takiego jak Activity, do Singleton. Obiekt o dłuższym czasie życia utrzymywałby go przy życiu i powodował wyciek pamięci. ⚠️

Wybór właściwego zakresu

Dopasuj zakres do czasu życia danych: konfigurację aplikacji umieść w Singleton, a stan ekranu w ViewModelScoped. Właściwy wybór zapobiega wyciekom i marnowaniu zasobów.

Szybkie sprawdzenie

Chcesz jednej współdzielonej instancji przez cały czas życia aplikacji. Który zakres będzie właściwy?

Podsumowanie: kontrola czasu życia

Dowiedziałeś się, że zakresy wiążą czas życia instancji z komponentem — od Singleton po ViewModel — dzięki czemu zależności istnieją dokładnie tak długo, jak trzeba. 🎯

Często zadawane pytania

Czy lekcja „Zakresy i cykle życia komponentów” jest bezpłatna?

Tak — pełny tekst „Zakresy i cykle życia komponentów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zakresy i cykle życia komponentów”?

Kontroluj, jak długo żyją zależności Ćwiczysz Jetpack Compose Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Jetpack Compose Academy?

Nie wymagamy żadnego doświadczenia. Jetpack Compose Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Zakresy i cykle życia komponentów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Jetpack Compose Academy?

Tak. Każda lekcja Jetpack Compose Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dlaczego DI: testowalny, luźno powiązany kod
  2. Moduły, @Provides i @Binds
  3. hiltViewModel i @HiltViewModel
  4. Zakresy i cykle życia komponentów
← Powrót do Jetpack Compose Academy