Я планирую какое-то информационное приложение для Android, и я не уверен, какой технический дизайн лучше (потому что это мое первое настоящее приложение для Android).
Приложение, которое отслеживает самую последнюю информацию с сервера, состоит из 4 экранов:
Моя мысль либо использует 4 действия, каждая из которых содержит одно представление, либо использует только одно действие, которое содержит ViewFlipper из этих 4 представлений. Каков наилучший подход и почему?
Деятельности имеют свое имя по причине. Каждое "действие/деятельность" должно быть помещено в отдельную деятельность. Пользователь хочет что-то настроить? Отправьте его в режим предпочтения. Пользователь хочет сделать снимок? Отправьте его на фото-мероприятие. И так далее.
Поэтому я думаю, что вы должны иметь 3 действия здесь, когда вы разделяете это на действия:
Для последнего вы можете использовать ViewFlipper, если хотите разбить передачу на два разных макета.
Какие преимущества у этого есть?
Ну, во-первых, у вас нет большого шарика кода в одном действии, который обрабатывает все. Конечно, это возможно, но может получиться несколько уродливым. Поддерживать здесь.
Также помните, что мы все еще находимся в мобильной среде. Да, в наши дни телефоны действительно мощные, но они по-прежнему имеют очень короткое время работы от аккумулятора. Поэтому не теряйте батарею, когда вам это не нужно. Что будет означать в случае одного гигантского действия, которое каждый раз, когда пользователь хочет отправить только сообщение, он должен загрузить с ним все остальное. Выполненный необработанный код → ненужные циклы CPU → батарея разряжена без причины.
Кроме того, это вам удобно, потому что инфраструктура поддерживает вас таким образом. Например: backstack обрабатывает много вещей для вас уже, например, вам не нужно управлять всей логикой "назад-ключ" (в противном случае вам нужно будет отслеживать расположение макета и обратные ключи).
Если вы хотите использовать систему намерений андроидов для сторонних приложений, это также очень полезно. Вы можете контролировать доступ к своим действиям на основе каждого типа. Например, разрешить другим приложениям вызывать активность вашего сообщения, но не вашу активность предпочтений. Если у вас есть одна большая активность, это становится затруднительным, с некоторыми намерениями дополнительный синтаксический анализ, чтобы определить, какой экран отображает другие приложения. И это, пожалуй, самая главная причина, по которой деятельность - это деятельность. Приложения могут работать на базе действий друг с другом.