Во многих примерах, которые я вижу, все действия и фрагменты простираются от основной активности и базовых фрагментов. 2 вопроса:Когда мне нужна базовая активность и базовый фрагмент?
- Когда следует использовать его?
- Какой код должен быть в нем?
Во многих примерах, которые я вижу, все действия и фрагменты простираются от основной активности и базовых фрагментов. 2 вопроса:Когда мне нужна базовая активность и базовый фрагмент?
Обычно я использую базовый 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);
Другие виды деятельности могут расширить BaseActivity. Если вы определяете общие элементы в BaseActivities, а все остальные действия расширяют BaseActivities, тогда все действия будут иметь эти общие элементы, например: пользовательское меню, настраиваемая панель, макет дизайна или некоторая логика запросов ... и т. Д.
Похожие с BaseFragment. Обычно я регистрирую onCreate, onAtach, onPause события в BaseFragment. Поэтому я вижу эти журналы во всех других фрагментах, которые расширяют BaseFragment. Кроме того, вы можете очень легко и в одном классе отключить эти журналы для всего фрагмента. (полезно до публикации)
Когда нам нужна глобальная обработка ошибок, мы можем использовать базовую активность/фрагмент.
Обычно используется для реализации интерфейса, обратных вызовов и т. Д., Если вы собираетесь использовать несколько «похожих» действий/фрагментов, которые вы должны использовать для «стиля кодирования». –
, например, позволяет сказать, что у вас есть фрагмент ящика для навигации, который изменился по мере прохождения фрагментов, щелкнув различные ссылки в ящике, тогда вам понадобится фрагмент ящика базовой навигации, который позаботился обо всех инициализации и настройке – Bhargav