У мене виникло стільки проблем із розстановкою декількох видів діяльності, що я сильно відштовхую її, якщо тільки немає вагомих причин вибрати її.
Недолік декількох видів діяльності
Використовуючи численні дії, важко переробити код рефактора для повернення даних від активності.
Якщо ви називаєте "суб-активність", то основна діяльність може бути знищена. Але ви ніколи не відчуваєте, що під час налагодження на гідному пристрої, значить, вам потрібно обробляти завжди збережений стан і правильно відновити стан. Це біль. Уявіть, що викличте метод у бібліотеці (тобто іншу діяльність), і вам слід переконатися, що при поверненні цього методу додаток повинен мати змогу повністю відтворити його стан з усіма полями на всіх об'єктах VM (тобто діяльність. RestoIntance). Це божевільно.
Також навпаки, коли ви відкриваєте субактивність, VM, можливо, був убитий з моменту появи першої підозрілості, наприклад, коли програма мінімізована під час відображення субактивності.
Це набагато чистіше, щоб просто було одне місце для зберігання відповідного стану додатків, і в моєму випадку, найчастіше, якщо VM вбита, я хочу повернути користувача на головний екран, і дозволити їм робити свої речі знову, тому що я не хочу не витрачаю 30-50 годин на кодування функцій збереження / відновлення, які коли-небудь відчують 0,1% користувачів.
Альтернатива
Фрагменти або просто керуйте переглядами діяльності. Управління поданнями вручну вимагає кодування певної альтернативи переключенню перегляду діяльності / фрагментів з переходами, якщо потрібно.
І ні, це не означає одну мега-активність, як пропонується у прийнятій відповіді, будь-яким іншим способом, ніж її один мега-додаток. Це просто вимагає трохи більше розробити базу коду на придатні шматки, тому що дещо більше роботи керує видами, хоча набагато менше роботи керують діяльністю-станом та іншими дивацтвами.
Можливо, це стосується: Reddit: Офіційно: Google офіційно рекомендує архітектуру додатків для однієї активності