Я столкнулся с таким количеством проблем, связанных с разметкой нескольких видов деятельности, что я категорически его не одобряю, если только нет веских причин выбирать это.
Недостаток нескольких видов деятельности
При использовании нескольких действий очень трудно реорганизовать код для возврата данных из действия.
Если вы называете «под-действием», то основное действие может быть убито. Но вы никогда не испытываете этого при отладке на приличном устройстве, поэтому вам нужно всегда обрабатывать сохранение состояния и правильное восстановление состояния. Это боль. Представьте, что вы вызываете метод в библиотеке (т. Е. Другое действие), и вы должны быть уверены, что когда этот метод возвратит, ваше приложение должно иметь возможность полностью воссоздать свое состояние со всеми полями всех объектов в ВМ (т. Е. Действия. restoreIntance). Это безумие.
Также наоборот, когда вы открываете субактивность, виртуальная машина могла быть убита с момента ее появления, например, когда приложение свернуто во время отображения субактивности.
Гораздо чище просто иметь одно место для хранения соответствующего состояния приложения, и в моем случае, чаще всего, если ВМ убита, я хочу вернуть пользователя на главный экран и позволить ему снова делать свои вещи, потому что я не трачу 30-50 часов на программирование функций сохранения / возобновления, с которыми когда-либо сталкивались 0,1% пользователей.
Alternative
Фрагменты или просто управляйте своей деятельностью просматриваете сами. Управление представлениями вручную требует кодирования некоторой альтернативы переключения видов для действий / фрагментов с переходами, если это необходимо.
И нет, это не означает одно мега-действие, как предлагается в принятом ответе, каким-либо иным образом, чем одно мега-приложение. Для этого просто требуется немного больше разбора кодовой базы на подгонки, потому что немного больше работы по управлению представлениями, но гораздо меньше работы по управлению состоянием активности и прочими странностями.
Возможно, актуально: Reddit: официально: Google официально рекомендует архитектуру приложения с одним действием