49 votes

Comment lancer l'activité une seule fois lorsque l'application est ouverte pour la première fois ?

J'ai une activité que je veux exécuter uniquement lorsque l'application est exécutée pour la première fois.

Et plus jamais. C'est une activité de connexion facebook. Je ne veux le lancer qu'une seule fois lorsque l'application est initialement ouverte pour la première fois.

Comment dois-je procéder?

22voto

troyhector Points 191

Publiez le code suivant dans votre déclaration onCreate

    Boolean isFirstRun = getSharedPreferences("PREFERENCE", MODE_PRIVATE)
            .getBoolean("isFirstRun", true);

    if (isFirstRun) {
        //show start activity

        startActivity(new Intent(MainActivity.this, FirstLaunch.class));
        Toast.makeText(MainActivity.this, "First Run", Toast.LENGTH_LONG)
                .show();
    }


       getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
                .putBoolean("isFirstRun", false).commit();

Remplacez FirstLaunch.class par la classe que vous souhaitez lancer

14voto

Samuel Points 4472

quelque chose comme ça pourrait fonctionner.

 public class MyPreferences {

    private static final String MY_PREFERENCES = "my_preferences";  

    public static boolean isFirst(Context context){
        final SharedPreferences reader = context.getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE); 
        final boolean first = reader.getBoolean("is_first", true);
        if(first){
            final SharedPreferences.Editor editor = reader.edit();
            editor.putBoolean("is_first", false);
            editor.commit();
        }
        return first;
    }

}

usage

 boolean isFirstTime = MyPreferences.isFirst(CurrentActivity.this);
if (isFirstTime) {
    NewActivity.show(CurrentActivity.this);
}

...

 public class NewActivity extends Activity {
    public static void show(Context context) {
        final Intent intent = new Intent(context, NewActivity.class);
        context.startActivity(intent);
    }
}

4voto

Sumudu_Sahan Points 71
SharedPreferences dataSave = getSharedPreferences("firstLog", 0);

if(dataSave.getString("firstTime", "").toString().equals("no")){ // first run is happened
}
else{ //  this is the first run of application
SharedPreferences.Editor editor = dataSave.edit();
                editor.putString("firstTime", "no");
                editor.commit();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X