2010-12-12 2 views
2

L'activité principale est spécifiée dans AndroidManifest.xml avec:Dynamiquement Spécifiez l'activité première

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

Mais je ne sais pas comment définir dynamiquement la première activité selon la logique de code.

Répondre

9

Spécifiez une activité par défaut qui contient la logique permettant de démarrer l'activité souhaitée dans sa méthode onCreate.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // CODE HERE TO CREATE INTENT 
    startActivity(intent); 
    finish(); 
} 
2

@Ian G's answer est correct - mais je pense que son peut être amélioré en supprimant l'activité de lancement du backstack. C'est ce que @gardarh is trying to say.

J'ai une réponse complète à cette question connexe qui montre essentiellement les deux côtés du problème, code d'activité & Code manifeste:

Le code d'activité est essentiellement le même que @ Ian, donc je ne vais pas le rediffuser. Mais je vais inclure mon ajout à sa réponse.


Déclaration Manifest (notez le paramètre noHistory="true"):

<activity 
     android:name=".activity.EntryActivity" 
     android:launchMode="singleInstance" 
     android:noHistory="true" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity>