Как правильно создать приложение для Android? - PullRequest
2 голосов
/ 02 октября 2011

В частности, за какими соглашениями в отношении видов деятельности следует следовать? Если я создаю программу с несколькими экранами, создаю ли я действие для каждого экрана?

Если я хочу правильно перемещаться между действиями, я придерживаюсь намерений в каждом действии? Я хочу сделать этот код максимально чистым и эффективным

Ответы [ 2 ]

3 голосов
/ 02 октября 2011

Короче говоря: да.

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

См. Эту неплохую статью о рекомендованном для Android способе.

У этого шаблона проектирования Intent / Activity есть много преимуществ, одним из которых является то, что вы можете переопределять и расширять другие действия приложения с помощьюсвой собственный с соответствующими фильтрами намерений.

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

1 голос
/ 02 октября 2011

Краткий ответ: это действительно зависит от того, как вы хотите выложить свое приложение.

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

Если вы хотите запускать действия самостоятельно, вы можете запускать действия с намерениями (как вы упомянули в своем вопросе).Пример - запуск намерений из Button или ListView.Для ListView (с OnItemClickListener ) у вас может быть что-то вроде:

(your ListView).setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> av, View v, int index,
    long arg3) {
        Intent intent = new Intent(TheActivityYou'reLaunchingFrom.this, OtherActivityYouWishToLaunch.class);
        startActivity(intent);
    }
}

Ссылки, которые я предоставил, имеют действительно хорошие примеры.Если вы хотите завершить действие, которое вы запустили из другого действия, вы можете вызвать метод finish (), который должен быть вызван из другого события (например, нажатия кнопки).

Также имейте в виду, что вы можете запуститьДействия с надеждой получить данные от запущенного действия через startActivityForResult , в котором используются пакеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...