2015-09-13 2 views
1

Во многих примерах, которые я вижу, все действия и фрагменты простираются от основной активности и базовых фрагментов. 2 вопроса:Когда мне нужна базовая активность и базовый фрагмент?

  1. Когда следует использовать его?
  2. Какой код должен быть в нем?
+0

Обычно используется для реализации интерфейса, обратных вызовов и т. Д., Если вы собираетесь использовать несколько «похожих» действий/фрагментов, которые вы должны использовать для «стиля кодирования». –

+0

, например, позволяет сказать, что у вас есть фрагмент ящика для навигации, который изменился по мере прохождения фрагментов, щелкнув различные ссылки в ящике, тогда вам понадобится фрагмент ящика базовой навигации, который позаботился обо всех инициализации и настройке – Bhargav

ответ

8

Обычно я использую базовый Activity/Fragment, когда мне нужно выполнить некоторую работу в некоторых обратных вызовах жизненного цикла всех моих действий/фрагментов.

Например, если вы используете Butter Knife (очень рекомендуется), вам необходимо позвонить по телефону Butterknife.bind(Activity a) после звонка setContentView. Так что лучше, если вы создаете базу деятельности и распространить метод setContentView в нем, как это:

@Override 
public void setContentView(int layoutResID) { 
    super.setContentView(layoutResID); 
    ButterKnife.bind(this); 
} 

В детской деятельности, когда вы звоните setContentView в начале onCreate (после вызова super.onCreate), ButterKnife.bind будет вызываться автоматически.


Другой вариант использования - это когда вы хотите реализовать некоторые вспомогательные методы. Например, если вы звоните startActivity несколько раз в вашей деятельности, это будет настоящая головная боль:

startActivity(new Intent(this, NextActivity.class)); 

Вы можете добавить метод start к базовой активности, как это:

protected void start(Class<? extends BaseActivity> activity) { 
    startActivity(new Intent(this, activity)); 
} 

и начать следующий вид деятельности:

start(NextActivity.class); 
4

Другие виды деятельности могут расширить BaseActivity. Если вы определяете общие элементы в BaseActivities, а все остальные действия расширяют BaseActivities, тогда все действия будут иметь эти общие элементы, например: пользовательское меню, настраиваемая панель, макет дизайна или некоторая логика запросов ... и т. Д.

Похожие с BaseFragment. Обычно я регистрирую onCreate, onAtach, onPause события в BaseFragment. Поэтому я вижу эти журналы во всех других фрагментах, которые расширяют BaseFragment. Кроме того, вы можете очень легко и в одном классе отключить эти журналы для всего фрагмента. (полезно до публикации)

-2

Когда нам нужна глобальная обработка ошибок, мы можем использовать базовую активность/фрагмент.