Aller à l'écran d'accueil programme
-
03-10-2019 - |
Question
Je veux aller à l'écran d'accueil Android programmation dans lorsque l'utilisateur clique sur le bouton. Comment cela peut-il être fait?
La solution
Vous pouvez le faire à travers un .
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
Cette intention va commencer l'application du lanceur que l'utilisateur a défini. Soyez prudent avec cela parce que ce regard frémira comme votre application plantait si l'utilisateur ne s'attend pas.
Si vous voulez que cela construire un bouton de sortie de votre application s'il vous plaît lire cet article sur sortie Boutons dans Android
Autres conseils
Une solution de ligne
moveTaskToBack(true); //activity.moveTaskToBack(true);
il se comporte comme le bouton Home est pressé
La réponse de Janusz est grande.
La seule chose que je veux ajouter, ce qui est un peu trop long pour un commentaire, est que vous pouvez aller à l'écran d'accueil sans avoir une référence à l'activité en cours.
Le code de Janusz doit être appelée d'une activité ou d'un fragment en raison de startActivity()
,
Pour contourner ce problème, vous pouvez stocker une référence statique à votre contexte des applications dans votre dossier de candidature:
public class YourApplication extends Application
{
private static Context mAppContext;
public void onCreate()
{
super.onCreate();
...
YourApplication.mAppContext = getApplicationContext();
}
public static Context getContext()
{
return mAppContext;
}
}
Maintenant, vous pouvez envoyer l'utilisateur à l'écran d'accueil de l'appareil de toute classe dans votre application, non seulement Activités, fragments, ou d'autres classes avec une référence à l'activité en cours (vous pouvez décider si cela est une bonne ou une mauvaise chose) :
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);
Voici quelques exemples d'autres opérations que vous pouvez spécifier que les intentions à l'aide de ces paramètres supplémentaires:
* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
Je sais que c'est un peu en retard mais j'ai aussi rencontré le même problème et voici comment je l'a résolu. Pour en revenir à votre MainActivity
vous devez ajouter des drapeaux de la Exiting Activity
final Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
Maintenant, quand vous avez appuyé sur le bouton de retour étant MainActivity
celui qui est actif, il ira à l'écran d'accueil.