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

De développeur Android site

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top