Вопрос

Я видел следующие два примера запуска действий в 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);
}

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

Это было полезно?

Решение

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

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

Другие советы

Кроме того, код можно сократить до

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top