2010-02-09 18 views
3

J'ai vu les deux exemples d'activités à partir de Android suivants:Différence entre 2 façons de démarrer une activité?

Exemple 1

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

Exemple 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); 
} 

Il semble que la différence évidente entre les deux exemples est que vous attachez la logique de la création d'une activité pour la mise en œuvre de l'activité. Y a-t-il d'autres différences clés? (par exemple, l'activité d'appel doit attendre que l'activité appelée se termine dans un cas, mais pas dans l'autre, etc.)

+0

Il n'y a pas de différence entre ces deux. – Anil

Répondre

4

Je ne vois aucune différence entre vos 2 méthodes, à part les 2 lignes de code dans votre premier méthode se trouve juste dans une méthode statique qui se trouve juste dans la classe de la 2ème activité.

Les lignes de code exécutées pour démarrer l'activité sont identiques. Ainsi le comportement des 2 méthodes sera identique.

1

En outre, le code pourrait être écourtée à

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

La seule raison pour créer une instance d'intention comme un champ est si vous devez définir des indicateurs ou ajouter des extras, etc.