Разница между двумя способами начать деятельность? - PullRequest
3 голосов
/ 09 февраля 2010

Я видел следующие два примера запуска действий в Android:

Пример 1

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);

Пример 2

// Calling activity
NextActivity.show(this)

// In the called activity
static void show(Context context) {
        final Intent intent = new Intent(context, NextActivity.class);
        context.startActivity(intent);
}

Кажется очевидным различием между этими двумя примерами является то, что вы привязываете логику того, как создается действие, к реализации действия. Есть ли другие ключевые отличия? (например, является ли вызывающее действие приказанным дождаться завершения вызываемого действия в одном случае, но не в другом и т. д.)

Ответы [ 2 ]

4 голосов
/ 09 февраля 2010

Я не вижу разницы между вашими 2 методами, кроме того, что две строки кода в вашем первом методе просто оказываются расположенными в статическом методе, который просто находится в классе 2-го упражнения.

Фактические строки кода, которые выполняются для запуска действия, идентичны. Таким образом, поведение двух методов будет идентичным.

1 голос
/ 28 ноября 2010

Кроме того, код может быть сокращен до

context.startActivity(new Intent (context, NextActivity.class));

Единственная причина для создания экземпляра Intent в качестве поля - это если вам нужно установить флаги или добавить дополнительные элементы и т. Д.

...