W Androidzie jaka jest główna różnica między rozszerzeniem aktywności Lifecycler, Activity, ActionBarActivity & AppCompactActivity? W jaki sposób klasy te różnią się od siebie pod względem użytkowania?Różnica między rozszerzeniem LifecycleActivity, Activity, ActionbarActivity i AppCompactActivity?
Odpowiedz
- rozszerzenie
ActionBarActivity
dajeActionBar
s funkcjonalność na każdym poziomie API> = 7 - rozszerzając
Activity
można uniknąć dodawania dodatkowych projektów/bibliotek do projektu, ale będziesz brakujeActionBar
na poziomie poniżej 11 api
edit: Więcej szczegółów:
ActionBarActivity
jest częścią Support Library. Biblioteki pomocnicze są używane do dostarczania nowszych funkcji na starszych platformach. Na przykład kod ActionBar
został wprowadzony w interfejsie API 11 i jest domyślnie częścią Activity
(w zależności od motywu). W przeciwieństwie do tego na starszych platformach nie ma wersji ActionBar
.Więc biblioteka wsparcie dodaje klasę podrzędną Activity
(ActionBarActivity
), która zapewnia funkcjonalność i interfejs ActionBar
„s
Edit2: Aktualizacja kwiecień 2015 - wygląda na to ActionBarActivity
jest przestarzałe w revision 22.1.0
Biblioteki Wsparcia. Zamiast tego należy użyć AppCompatActivity
.
Edit3: Aktualizacja sierpień 2017 - LifecycleActivity jest LifecycleOwner ale:
„Ponieważ składniki Architektura jest w fazie alpha, Fragment i klas AppCompatActivity nie można wdrożyć go (bo nie możemy dodać zależność od stabilnego komponentu do niestabilnego interfejsu API.) Do cyklu życia jest stabilny, klasy LifecycleActivity i LifecycleFragment są dostępne dla wygody. Po opublikowaniu projektu Lifecycles , obsługiwane fragmenty biblioteki i działania będą zaimplementować interfejs LifecycleOwner ; LifecycleActivity i LifecycleFragment będzie być przestarzałe w tym czasie.”
(skopiowane z wytyczną Architektura komponenty)
"brak paska Actionbar na poziomach api poniżej" 7 – m121212
@ m121212 Pasek ActionBar został wprowadzony na poziomie interfejsu API 11. Dlatego rozszerzając działanie, będziesz mieć go tylko na urządzeniach z Androidem Honeycomb 3.0 (poziom interfejsu API 11) i powyżej – stan0
nie jest to prawdą, w rzeczywistości obsługiwana jest biblioteka obsługująca funkcjonalności dla poziomu api niższego niż 11 (na przykład) – m121212
Modele ActionBarActivity
lub SupportActionBarActivity
mają dodatkowe metody i właściwości, które nie występują w ogólnej wersji Activity
. na przykład metody dodawania zakładek są obecne w ActionBarActivity
, a nie w ogólnym Activity
.
Główna różnica polega na tym, że nie otrzymuje się ActionBar
na generic Activity
.
Co, jeśli nie chcesz używać paska akcji? Czy ma jakieś ulepszenia wydajności w porównaniu z Prostą aktywnością, czy tylko lepiej jest używać tylko z paska akcji? –
IDK, jeśli actionbaractivity ma poprawę wydajności w porównaniu do braku aktywności – danny117
Dzięki. Wciąż jestem nieco zdezorientowany z tego, czego używać w moich przyszłych aplikacjach i co jest bardziej zalecane. –
ActionBarActivity tylko ma więcej bibliotek wsparcia i lepszego wykorzystania nowszych tematów dostępnych API 11.
„W swojej najbardziej podstawowej formie, bar akcja wyświetla tytuł dla aktywności i ikony aplikacji po lewej stronie. Nawet w tej prostej formie pasek czynności jest przydatny w przypadku wszystkich działań, aby poinformować użytkowników o tym, gdzie się znajdują i zachować spójną tożsamość aplikacji. "
Jeśli przyjrzeć się dokładnie, widać to
public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable
Tutaj można przeczytać o FragmentActivity: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html
i różnice między aktywnością i FragmentActivity: Difference between Activity and FragmentActivity
Ponadto, istnieją nowe motywy do stylizacji akcjiBar ... https://developer.android.com/training/basics/actionbar/styling.html
Actionbar został wprowadzony na poziomie interfejsu API 11. com.android.support:appcompat-v7:+ to biblioteka pomocy, która umożliwia korzystanie z paska akcji w aplikacji na urządzenia z systemem Android w wersji 3.0 lub starszej. Tak więc, jeśli potrzebujesz akcji poniżej poziomu 11 api, twoja Aktywność musi rozszerzyć ActionBarActivity.
Jeśli kierujesz api na poziom 11 i wyższy, nie musisz rozszerzać ActionBarActivity i odwoływać się do AppCompat. Możesz po prostu rozszerzyć działanie, a będziesz miał domyślnie Actionabr.
Domyślny projekt Android Studio automatycznie włącza go w zależności i rozszerza ActionbarActivity zamiast Activity, aby z niego korzystać.
Używasz Android biblioteki wsparcie, gdy przyjdziesz do do Actionbaractivity. Tak więc zastosowania biblioteki Wsparcia czy twoja aplikacja może być obsługiwana dla maksymalnej liczby urządzeń Biblioteka wsparcia daje twojej aplikacji moc wstecznej kompatybilności Actionbaractivity daje ci wiele funkcji, takich jak ActionBardrawer, przełączanie itd .. dostępnych jest więcej bibliotek wsparcia. zobacz ten link .. i udostępnij do znajomych ... https://developer.android.com/tools/support-library/index.html
- 1. Różnica między modułami i rozszerzeniem w Yii
- 2. Błąd: niejednoznaczne wywołanie metody. Zarówno findViewById (int) w AppCompactActivity i Activity
- 3. Jak setSupportActionBar w widoku, który rozciąga LifecycleActivity
- 4. Używanie PreferenceActivity i ActionBarActivity
- 5. Jaka jest różnica między rozszerzeniem aplikacji i jej przedłużeniem w systemie Android?
- 6. Różnica między i intencji i setcontentview
- 7. Łączenie obiektów ListActivity i ActionBarActivity
- 8. Działanie rozszerzające ActionBarActivity i YouTubeBaseActivity
- 9. Różnica między getString() i getResources.getString()
- 10. Przepływ danych między Android BroadcastReceiver, ContentProvider i Activity?
- 11. Różnica między unwrapObservable i()
- 12. Różnica między "**/* /" i "** /"?
- 13. Różnica między | = i^= css
- 14. Composer.phar różnica między | i ||
- 15. Różnica między "% ~ dp0" i ". \"?
- 16. Różnica między ". +" I ". +?"
- 17. MySQL: Różnica między ",", "i"
- 18. Różnica między (++ i) oraz (i ++)
- 19. Jaka jest różnica między rozszerzeniami .html i .xhtml? XHTML jest językiem znaczników lub innym rozszerzeniem również
- 20. Różnica kręgosłupa Różnica między CompositeView i CollectionView?
- 21. Jak używać ActionBarActivity z Theme.Material
- 22. Komunikacja między rozszerzeniem firefox a stroną javascript
- 23. Różnica między logger.info i logger.debug
- 24. Różnica między fgets i fscanf?
- 25. Różnica między NSLog i DLog
- 26. Różnica między RoutedEventHandler i EventHandler
- 27. Różnica między obrysem i wypełnieniem?
- 28. Różnica między Parameters.Add i Parameters.AddWithValue
- 29. Różnica między putback() i unget()
- 30. Różnica między Delegate.BeginInvoke i Thread.Start
Wszystko to wyjaśniono tutaj: https://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html – donfuxx
Przeczytaj więcej na ten temat tutaj: http://stackoverflow.com/questions/23045472/ action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action-action ActionBarActivity rozszerza działanie FragmentActivity i dodaje wsparcie dla backportu paska działań appcompat –