3. Проблема перенасыщенной Activity Activity - 141 метод Для работа простейшего приложения Вам потребуется переопределить кучу из них Для методов, связанных с Dialogs, Menus, Activity Results, возникают большие Switch Сквозная функциональность функционал присутствующий в нескольких Activity ActionBar MainMenu
4. Решениепроблемы№1 Явное делегирование Функционал инкапсулируется в отдельном классе - Manager Методы жизненного цикла Activity напрямую вызываются каждого Manager Manager-ыявно друг на друга ссылаются Недостатки Трудное добавление/удаление Manager в Activity Дублирование кода при невозможности отнаследоваться от базовой Activity Громоздкость в методах жизненного цикла
5. Решение проблемы № 2 Упрощающий жизнь собственный “framework” (Aspects) Наследуемся от Aspects Методы жизненного цикла Activity вызываются автоматически с помощью AspectManager Наследование от *AspectedActivity Aspect-ы могут получить другие Aspect-ы из AspectManager Недостатки Слабая документированность Не все метода жизненного цикла охвачены Поддержка управления только из кода - нет возможности их .xml
7. История Появились в Android 3.0 Презентуется как UI новинка Побочный эффект – решение нашей проблемы Вышли как дополнение для Android <3.0Android Compatibility package, revision 1 Именно это package и был исследован 3.0 пока 0.3%
8. Внешнее описание Часть Activity – часть UI или часть логики FragmentManager - Fragment знает о других Fragment-ах Жизненные цикл Fragment совпадает с жизненным циклом Activity Находка Fragmented layout
15. Интересности и проблемы Retain Instance (see Demos) Fragments Stack (seeDemos) CursorAdapter- он тут свой Activity создается два раза во время выдвижения клавиатуры – и это нормально – два configuration change Проблема именно compatibility редакции один NUIfragment В landscape layout 2 UI fragment в layout.xml В portrait layout 1 UI fragment в layout.xml При смене ориентации:IllegalStateException: Fragment did not create a view. Пытается найти 2 UIfragment и вместо него берет NUI fragment Связанно с понятием container - магия...
20. API Demos Идет в поставке с compatibilitypackage ndroid-sdk-windowsndroid-compatibility4amplespiDemos Внимание - target version 11 - Android 3.0 Нам интересно:App/Fragment support Fragment*Support Layout Retain Instance Dialog or Activity Menu
21. Почему они мне так понравились Fragments - Разделение логики Fragments - Отличная инкапсуляция логики Имеет вид строгого шаблон Помощь новичкам Рамки для фантазии программистов Авторитетное готовое решение Sources Inclusive Всегда можно посмотреть Всегда можно пройтись под debug Грядет эра honeycomb