Android. Разница между классом Java расширяет AppcompatActivity и расширяет Activity и расширяет ActionBar?

Android - я собираюсь разработать приложение, API которого находится между API 15 и последним API. У меня есть 1 сомнение.

Разница между

1.Класс Java расширяет AppcompatActivity и

2.Класс Java расширяет Activity и

3. Класс Java расширяет ActionBarActivity.

Если кто-то даст четкое определение, я обязательно отмечу ответ как принятый на мой вопрос.

Заранее спасибо. :)


person Venkatesh Selvam    schedule 07.11.2015    source источник
comment
Зависит от уровня Android API, для которого вы хотите разрабатывать. Для текущих уровней API (> 20) забудьте об этих вещах совместимости/панели действий и просто используйте активность.   -  person Stephan    schedule 07.11.2015
comment
расширяет панель действий? никогда не читал..!!!   -  person Dhaval Patel    schedule 07.11.2015
comment
Спасибо. API 15 для более нового API.   -  person Venkatesh Selvam    schedule 07.11.2015
comment
о, это ActionBarActivity..!!!   -  person Dhaval Patel    schedule 07.11.2015
comment
Пройдите по этой ссылке. Я надеюсь, что поможет вам. stackoverflow.com/a/23090310/3483989   -  person sunj    schedule 07.11.2015


Ответы (2)


  • расширение ActionBarActivity дает вам функциональность ActionBars на каждом уровне API >= 7
  • расширив Activity, вы можете избежать добавления дополнительных проектов/библиотек в свой проект, но вам не будет ActionBar на уровнях API ниже 11

ActionBarActivity является частью библиотеки поддержки. Библиотеки поддержки используются для предоставления новых функций на старых платформах. Например, ActionBar был введен в API 11 и по умолчанию является частью Activity (на самом деле, в зависимости от темы). Напротив, на старых платформах нет ActionBar. Таким образом, библиотека поддержки добавляет дочерний класс Activity (ActionBarActivity), который обеспечивает функциональность и пользовательский интерфейс ActionBar.

  • Новая устаревшая версия ActionBarActivity (расширяющая класс AppCompatActivity) является безопасным для использования классом обратной совместимости. Его устаревание — это всего лишь намек на то, что вместо него можно напрямую использовать новый AppCompatActivity. AppCompatActivity — это новая, более общая реализация, в которой используется класс AppCompatDelegate.

Например, вы наследуете действие от внешней библиотеки, которая, в свою очередь, не наследуется от AppCompatActivity, но вы хотите, чтобы это действие имело тонированные виджеты материалов (представления). Чтобы это произошло, вам нужно создать экземпляр AppCompatDelegate внутри вашей активности, override методов этой активности, таких как addContentView(), setContentView() и т. д. (полный список методов см. в AppCompatDelegate javadoc), а внутри этих переопределенных методов перенаправлять вызовы внутренним AppCompatDelegate экземпляр. AppCompatDelegate сделает все остальное, и ваша "старомодная" деятельность будет "материализована".

Источник: это и это.

person activesince93    schedule 07.11.2015

Расширяет AppcompatActivity хорошо .AppcompatActivity помогает нам использовать новую функцию в низкой api.

person tiny sunlight    schedule 07.11.2015