Разница между двумя способами начать занятие?
-
19-09-2019 - |
Вопрос
Я видел следующие два примера запуска действий в 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 в качестве поля — это если вам нужно установить флаги, добавить дополнительные функции и т. д.