2011-08-10 4 views
1

Dans mon fichier manifeste, j'ai une déclaration d'activité qui ressemble à quelque chose comme ceci:android vérifier si une activité a été démarrée à partir d'une action ou d'une autre activité?

<activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
</activity> 

Cette activité est évidemment lancée le démarrage de l'application. L'utilisateur peut naviguer de cette activité à une autre activité et de celle-ci à une autre etc. Dans une autre activité, je lance MainActivity en utilisant la méthode 'startActivity', c'est-à-dire. quelque chose comme:

Intent intent = new Intent(AnotherActivity.this, MainActivity.class); 
startActivity(intent); 

Dans mon MainActivity (dans la méthode onCreate() peut-être), puis-je déterminer si une activité a été lancée à partir d'une action d'une autre activité? Y at-il quelque chose comme "lanceur d'écoute"? Je voudrais éviter de mettre du contenu supplémentaire dans l'intention. Puis-je simplement mettre String s = getIntent().getAction(); dans la méthode onCreate et vérifier si elle a la valeur MAIN?

Répondre

3

Eh bien le stock lanceur Android n'envoie Intent.ACTION_MAIN que comme l'action. Cependant, vous ne pouvez pas être sûr qu'un autre lanceur aura le même comportement. Votre meilleur pari sera de transmettre des données supplémentaires avec l'intention.

+0

merci, mais je voudrais vraiment éviter les extras d'intention. – Maggie

Questions connexes