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