La réponse de Janusz est génial.
La seule chose que je veux ajouter, qui est un peu trop longue 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é depuis une Activité ou un Fragment en raison de startActivity()
,
Pour contourner ce problème, vous pouvez stocker une référence statique au Contexte de votre application dans votre fichier d'application :
public class YourApplication extends Application
{
private static Context mAppContext;
public void onCreate()
{
super.onCreate();
...
YourApplication.mAppContext = getApplicationContext();
}
public static Context getContext()
{
return mAppContext;
}
}
Désormais, vous pouvez envoyer l'utilisateur vers l'écran d'accueil de l'appareil à partir de n'importe quelle classe de votre application, et pas seulement des activités, des fragments ou d'autres classes avec une référence à l'activité actuelle (vous pouvez décider si c'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);
13 votes
S'il vous plaît, acceptez certaines de vos anciennes questions.
0 votes
Une façon simple de procéder est de remplacer onBackPressed ou par keyEvent =Backpressed et d'appeler onHomePressed sur ce dernier.