Diferença entre 2 maneiras para iniciar uma atividade?
-
19-09-2019 - |
Pergunta
Eu tenho visto os dois exemplos de iniciar as atividades no Android seguintes:
Exemplo 1
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);
Exemplo 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);
}
Parece que a diferença óbvia entre os dois exemplos é que você anexar a lógica de como é criada uma atividade para a implementação da atividade. Existem outras diferenças fundamentais? (Por exemplo, é a atividade chamando disse para esperar até que os chamados acabamentos de atividade em um dos casos, mas não em outro, etc.)
Solução
Não vejo nenhuma diferença para os seus 2 métodos, além dos 2 linhas de código em seu primeiro método só acontecerá a ser localizado em um método estático que só acontece de ser localizado na sala de aula do 2º actividade.
As linhas de código que estão sendo executados para iniciar a atividade são idênticos. Assim, o comportamento dos métodos 2 será idêntico.
Outras dicas
Além disso, o código poderia ser reduzido para
context.startActivity(new Intent (context, NextActivity.class));
Apenas motivos para se criar uma instância de Intenções como um campo é se você precisa de sinalizadores definidos ou adicionar extras, etc.