Jeśli mówić o Activity
, AppcompactActivity
, ActionBarActivity
etc etc ..
Musimy porozmawiać o klasach podstawowych, które rozszerzają. Najpierw musimy zrozumieć hierarchię superklas.
Wszystkie rzeczy zaczynają się od kontekstu, który jest super klasą dla wszystkich tych klas.
Kontekst jest klasą abstrakcyjną, której implementację zapewnia system Android. Umożliwia dostęp do zasobów i klas specyficznych dla aplikacji, a także wezwań do wykonywania operacji na poziomie aplikacji, takich jak uruchamianie działań, nadawanie i przyjmowanie zamiarów itp.
Context
następuje lub jest przedłużany przez ContextWrapper
ContextWrapper jest klasa, które rozciągają Context klasę, która po prostu delegaci wszystkich swoich połączeń z innym kontekście. Można go podklasować, aby zmodyfikować zachowanie bez zmiany oryginalnego kontekstu.
Teraz sięgamy do Activity
Aktywny jest klasa, która rozciąga ContextThemeWrapper że to pojedynczy, skupiony rzeczą, że użytkownik może zrobić. Prawie wszystkie działania współdziałają z użytkownikiem, więc klasa Activity zajmuje się tworzeniem dla ciebie okna
Poniższe klasy są ograniczone do rozszerzenia, ale są one rozszerzane przez ich zstępującego wewnętrznie i zapewniają wsparcie dla konkretnego interfejsu API
SupportActivity jest grupa, która rozciąga się aktywność, która jest klasą bazowa komponować razem funkcję zgodności
BaseFragmentActivityApi14 to klasa, która rozciąga SupportActivity
że to klasa bazowa jest ograniczona klasa ale jest przedłużenie o
BaseFragmentActivityApi16 wspierać funkcjonalność V14
BaseFragmentActivityApi16 jest klasa która rozciąga
BaseFragmentActivityApi14 która to klasa bazowa {@code
FragmentActivity }, aby móc korzystać z V16 API. Ale jest to również klasa ograniczona, ale jest rozszerzana przez FragmentActivity, aby obsługiwać funkcjonalność V16.
teraz FragmentActivty
FragmentActivity to klasa, która rozciąga
BaseFragmentActivityApi16 i że chce skorzystać z pomocy opartej fragmentem i Loader API.
Korzystając z tej klasy w przeciwieństwie do wbudowanej obsługi fragmentów i modułów ładujących nowej platformy, należy użyć odpowiednio metod getSupportFragmentManager()
i getSupportLoaderManager()
, aby uzyskać dostęp do tych funkcji.
ActionBarActivity jest częścią Biblioteki wsparcia. Biblioteki pomocy służą do dostarczania nowszych funkcji na starszych platformach. Na przykład pasek Actionbar został wprowadzony w API 11 i domyślnie jest częścią działania (w zależności od motywu). Natomiast na starszych platformach nie ma paska ActionBar . Tak więc biblioteka obsługi dodaje klasę potomną Activity ( ActionBarActivity ), która zapewnia funkcjonalność i interfejs ActionBar
W 2015 ActionBarActivity jest przestarzałe w wersji 22.1.0 Biblioteki pomocy technicznej. Zamiast tego należy użyć AppCompatActivity .
AppcompactActivity to klasa, która rozciąga
FragmentActivity który jest klasa bazowa dla działań, które należy użyć paska działanie funkcji bibliotecznych wsparcie.
Możesz dodać pasek ActionBar do swojej aktywności, gdy działa on na poziomie API 7 lub wyższym, rozszerzając tę klasę dla swojej aktywności i ustawiając motyw aktywności na Theme.AppCompat
lub podobny motyw
Odnoszę te dwa jeden , dwa
FragmentActivity
ies. Jesteś tylko gospodarzemFragment
. W nowszych wersjach AndroidaActivity
sama klasa została zaktualizowana, aby hostować je bezpośrednio. Do obsługi starszych wersjiFragmentActivity
wprowadzono.