Salut J'essaie de détecter si mon application a été ouverte pour la première fois. Si c'est le cas, j'ai besoin de lancer une activité et une fois qu'elle est ouverte pour la deuxième fois, elle ne devrait plus l'afficher.Android en utilisant les préférences partagées pour vérifier la première fois
Ceci est mon code:
fragment:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Intent intent = new Intent(getActivity(), TutorialFeaturedActivity.class);
//startActivity(intent);
SharedPreferences settings = this.getActivity().getSharedPreferences(PREFS_NAME, 0); // Get preferences file (0 = no option flags set)
boolean firstRun = settings.getBoolean("firstRun", true); // Is it first run? If not specified, use "true"
if(firstRun) {
Log.w("onCreate: ","first time");
Intent intent = new Intent(getActivity(), TutorialFeaturedActivity.class);
startActivity(intent);
SharedPreferences.Editor editor = settings.edit(); // Open the editor for our settings
editor.putBoolean("firstRun", false); // It is no longer the first run
editor.apply(); // Save all changed settings
} else {
Log.w("onCreate: ","second time");
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}
getSpecials();
}
Mais tout ce qu'il fait est de commencer l'activité et quand je commence à nouveau il gèle dans un écran blanc, mais vérifier les journaux qu'il montre comme le autre instruction est constamment en cours d'exécution encore et encore. Je suis relativement nouveau sur Android, donc de l'aide ou des conseils seraient grandement appréciés
vous devez utiliser editor.commit(); pour enregistrer les modifications – gaurang
Puis-je demander quelle est l'utilisation de 'getActivity(). finish()'? C'est la différence que je vois entre le premier et le deuxième passage. et il se peut que cela vous ramène la classe où vous vérifiez la première course et vous entrez dans une boucle sans fin ?! – Nico
Quand j'utilise editor.commit(); ou appliquer je reçois toujours le même résultat, aussi l'ide me dit que je devrais utiliser appliquer au lieu de commettre mais même problème. – thaabitv