2014-04-07 3 views
4

Я планирую новое приложение с навигационным ящиком. Лучше использовать одну активность, которая управляет многими фрагментами или использовать многие действия со многими фрагментами? Существуют ли какие-либо серьезные преимущества или недостатки?Одна активность - много фрагментов или много видов деятельности - много фрагментов?

Я прочитал много статей об этом, но есть с 2012 года и старше.

(я просто строгание читать и вставить некоторые ДАННЫЕ в/из базы данных ..)

+0

Возможный дубликат [Одно действие и все другие фрагменты] (https://stackoverflow.com/questions/12154505/one-activity-and-all-other-fragments) –

ответ

5

Из моего опыта, я рекомендовал бы, а наличие нескольких мероприятий с большим количеством фрагментов. Если вы используете одно действие, вам будет сложнее и сложнее управлять фрагментами с жизненным циклом деятельности.

Например, если действие уничтожено (например, если телефон неактивен в памяти, а пользователь получает телефонный звонок или вы вызываете намерение открыть камеру), когда намерение воссоздано, вам нужно будет обрабатывать воссоздание фрагментов и их государств.

С одним действием это может быстро стать кошмаром для управления, если не сделано тщательно. Благодаря нескольким действиям легче управлять и помогает отдельным частям приложения, что упрощает отладку.

Примером того, как что-то простое может стать сложным с одним действием, было бы что-то вроде кнопки «Назад».

Если вам нужно обрабатывать его по-разному для разных фрагментов, это означает, что ваша активность будет необходима для того, чтобы фрагмент был виден в данный момент, поскольку активность переопределяет подкладку, а не фрагмент. Это также, вероятно, означает, что вам нужно добавить интерфейсы для уведомления фрагментов нажатия кнопки «Назад».

Сказав все это, однако, есть некоторые приложения, которые извлекают выгоду из одного действия. Например, если у вас есть просмотрщик для прокрутки фрагментов (например, страниц книги) или фрагментов, которые мало взаимодействуют, то одно действие может быть полезным.

+1

Я пытаюсь использовать одно действие, и я делаю продолжайте застревать. Меня заставляет задуматься, не следует ли мне использовать единую архитектуру активности. Однако я ненавижу то, что фрагменты загружаются намного быстрее, чем запуск нового действия. Я чувствую, что если используется одна архитектура активности, приложение будет чувствовать себя намного более отзывчивым. Довольно головоломка. – theblang

Смежные вопросы