Frage

Ich möchte wissen, ob der Benutzer die Anwendung zum ersten Mal verwendet wird. Ich verwende SharedPreferences, aber ich bin nicht sicher, ob ich die richtige Logik haben.

Wie kann ich meinen isFirstLaunched boolean auf true gesetzt, wenn der Benutzer zum ersten Mal startet, und dann sofort auf false gesetzt nach der Arbeit getan wurde?

protected void onStart() {
        super.onStart();

        if(isFirstLaunch()){
            populateDefaultQuotes();

            //Save the preferences, isFirstLaunch will now be false
            SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putBoolean("isFirstLaunch", false);
            editor.commit();
        }

        setupUI();
        checkOrientation();
        restoreCache();
    }

    private void populateDefaultQuotes(){
        System.out.println("!!!!!! FIRST TIMER !!!!!!");
    }

    private boolean isFirstLaunch() {
        // Restore preferences
        SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0);
        boolean isFirstLaunch = settings.getBoolean("isFirstLaunch", false);

        return isFirstLaunch;
    }
War es hilfreich?

Lösung

Ersetzen Sie das false Argument in getBoolean() von true, dann wird die Logik passen.

boolean isFirstLaunch = settings.getBoolean("isFirstLaunch", true); 

Dies wird true zurück, wenn es keine solche Einstellung ist.

Andere Tipps

Sie können BroadcastReceiver registrieren für Intent.ACTION_PACKAGE_FIRST_LAUNCH

hören

http://developer.android.com/reference/android/ content / Intent.html # ACTION_PACKAGE_FIRST_LAUNCH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top