Якщо говорити про Activity
, AppcompactActivity
, і ActionBarActivity
т.д. і т.п ..
Нам потрібно поговорити про базові класи, які вони розширюють. Спочатку ми повинні зрозуміти ієрархію суперкласів.
Всі речі починаються з контексту, який є суперкласом для всіх цих класів.
Контекст - це абстрактний клас, реалізацію якого забезпечує система Android. Це дозволяє отримати доступ до ресурсів і класів, що стосуються додатків, а також до викликів для операцій на рівні додатків, таких як запуск діяльності, трансляція та отримання намірів тощо
Context
супроводжується або продовжується на ContextWrapper
ContextWrapper клас , який поширюється Контекстне клас , який просто делегує всі її дзвінки в інший контекст. Можна підкласифікувати для зміни поведінки без зміни вихідного контексту.
Тепер ми доходимо до Activity
Активність являє собою клас , який розширює ContextThemeWrapper , що представляє собою єдиний, цілеспрямований річ , що користувач може зробити. Практично всі дії взаємодіють з користувачем, тому клас Activity дбає про створення вікна для вас
Нижче класи обмежуються, але вони подовжуються внутрішнім спадкоємцем і забезпечують підтримку конкретних Api
SupportActivity це клас , який розширює активність , що є Базовим класом для складання функціональних сумісності разом
BaseFragmentActivityApi14 клас , який розширює SupportActivity ,
що це базовий клас Він обмежений класом , але вона поширюється на
BaseFragmentActivityApi16 для підтримки функціональності V14
BaseFragmentActivityApi16 це клас , який розширює
BaseFragmentActivityApi14 , що є Базовим класом для {@code
FragmentActivity } , щоб мати можливість використовувати V16 API. Але це також обмежений клас, але він розширюється FragmentActivity для підтримки функціональності V16.
тепер FragmentActivty
FragmentActivity клас , який розширює
BaseFragmentActivityApi16 і хоче використовувати підтримку на основі фрагмента і Loader API.
Використовуючи цей клас на відміну від вбудованої фрагменти та підтримки завантажувача нової платформи, для доступу до цих функцій потрібно використовувати відповідно методи getSupportFragmentManager()
та getSupportLoaderManager()
методи.
ActionBarActivity є частиною бібліотеки підтримки. Бібліотеки підтримки використовуються для доставки нових функцій на старих платформах. Наприклад, ActionBar був представлений в API 11 і є частиною Активності за замовчуванням (залежно від фактично теми). На відміну від ActionBar на старих платформах немає. Таким чином, бібліотека підтримки додає дочірній клас діяльності ( ActionBarActivity ), який забезпечує функціональність та інтерфейс ActionBar
У 2015 році ActionBarActivity застаріла в редакції 22.1.0 Бібліотеки підтримки. Натомість слід використовувати AppCompatActivity .
AppcompactActivity клас , який розширює
FragmentActivity , що є базовим класом для діяльності , які використовують дію штрихових функції бібліотеки підтримки.
Ви можете додати ActionBar до своєї діяльності під час запуску API рівня 7 або вище, розширивши цей клас для своєї діяльності та встановивши тему діяльності на Theme.AppCompat
подібну тему
Я посилаюсь на ці два один , два
FragmentActivity
ies. Ви лише хостингFragment
s. У нових версіях Android самActivity
клас було оновлено для їх прямого розміщення. Для підтримки старих версійFragmentActivity
було введено.