Как я могу определить, использует ли пользователь мое приложение впервые? - PullRequest
2 голосов
/ 21 сентября 2010

Я хотел бы знать, использует ли пользователь приложение впервые. Я использую SharedPreferences, но я не уверен, что у меня правильная логика.

Как я могу установить для моего isFirstLaunched логического значения значение true, когда пользователь сначала запускается, а затем сразу же устанавливается в значение false после завершения работы?

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

Ответы [ 2 ]

5 голосов
/ 21 сентября 2010

Замените аргумент false в getBoolean() на true, тогда логика будет соответствовать.

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

Это вернет true, если такой настройки нет.

0 голосов
/ 24 июня 2011

вы можете зарегистрировать BroadcastReceiver для прослушивания Intent.ACTION_PACKAGE_FIRST_LAUNCH

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...