Ответ 1
Мы не можем использовать TabActivity, ListAcivity, MapActivity. Но есть и трюки, которые можно обойти без них.
Вы должны использовать MapActivity
, если хотите использовать MapView
. Вы должны использовать PreferenceActivity
, если хотите использовать XML предпочтений.
Необходимо вести историю самостоятельно. Но это не так сложно развиваться.
Трудность в управлении собственной историей будет во многом зависеть от того, что должно быть в истории. Реализация истории для простого мастера будет довольно простой. Однако это очень простой сценарий. В Android существует довольно много кода управления историей, который вам придется переписывать для любых других случаев.
Вы также забыли:
# 5. Вы будете склонны к утечке памяти, потому что вы забудете очистить материал, и Android не будет очищать вещи (поскольку предполагается, что вы будете использовать множество небольших действий, как они рекомендуют).
# 6. Ваше управление состоянием для изменения конфигурации (ротация, док-станция, изменение SIM-карты, изменение локали, несколько дисплеев, масштаб шрифта) будет более сложным, потому что теперь вам также нужно выяснить, какие дополнительные вещи (например, история) должны быть частью состояния, и вы имеете дело со всеми из них одновременно, а не по активности по времени.
# 7. Наличие нескольких точек входа для вашего приложения становится более сложным (например, несколько значков в панели запуска, виджет приложения, связанный с какой-либо другой деятельностью, отличной от основной, и т.д.).
Быстрее менять содержание текущей активности, чем запускать другое действие
Для большинства современных устройств Android разница в скорости не будет значимой для большинства пользователей, IMHO.
Если у нас есть только один контекст активности, проще найти и решить проблемы с утечками памяти.
За исключением того, что у вас все еще есть более одного контекста активности. Помните: ваша активность, большая или малая, все еще уничтожается и воссоздается при изменениях конфигурации.
Что вы думаете об этом шаблоне?
Мерфи "природа деятельности" утверждает, что активность расширяется до тех пор, пока транзакционные издержки на то, чтобы делать вещи внутри, становились выше, чем транзакционные издержки на то, чтобы другие действия делали одни и те же вещи. Разработчики Android будут стремиться к модели "пользовательской транзакции" для действий - вещи, которые тесно связаны (например, шаги в мастере), будут обрабатываться в одиночной деятельности и в вещах, которые имеют мало отношения (например, просмотр или поиск) vs. settings vs. help vs. about) будут обрабатываться в разных действиях.