Comment puis-je choisir de manière dynamique de l'activité de lancement lors de l'ouverture d'une application
Je suis en train d'écrire une application qui vous oblige à être connecté à un service avant de l'utiliser. De ma compréhension de android jusqu'à présent, vous devez choisir l'activité à lancer lorsque vous ouvrez à partir de l'écran de lancement dans le manifeste. Je ne sais pas quelle activité je veux lancer au moment de la compilation. Je veux que l'utilisateur clique sur l'icône, puis je vérifier et voir si ils sont connectés, puis de se prononcer sur la question du lancement de l'activité de connexion, ou l'application principale activité. Est-il un moyen de faire cela?
Vous devez vous connecter pour publier un commentaire.
Non, puisque vous avez à exécuter du code, il n'y a aucune façon de manière déclarative (dans le manifeste) de le dire. Vous devez lancer une activité (défini dans le manifeste), alors cette activité décider en fonction de si l'utilisateur est connecté ou non ce deuxième activité de lancement via Intention:
Il y a un autre moyen de le faire à l'aide de activité-alias.
Dans le Manifeste :
2.Quelque part dans l'Activité de Connexion:
après cela, l'application sera tué une fois et la prochaine fois que vous lancez l'application, le MainActivity serait le lanceur.
Android Framewowrk fournit la méthode
public Intent setClassName (String packageName, String className)
de l'Intention de classe que vous pouvez utiliser pour choisir de manière dynamique de l'activité d'invoquer avec juste le nom de la classe String.
Voici un exemple
https://developer.android.com/reference/android/content/Intent.html#setClassName(java.lang.String,%20java.lang.String)
Comme ci-dessus @auval dit, j'ai tester le code ci-dessous et il le fait bien!
Au premier abord ,l'AndroidManifest.xml fichier ressemble à ceci:
Seconde,vous pouvez mettre ces code quelque part dans le MainActivity.class:
Maintenant,lors du premier lancement de l'application ,le LauncherActivity serait lancé et lorsque vous quittez l'application ,exécutez à nouveau l'application,le MainActivity serait lancé.