2

ユーザーがアプリケーションを初めて使用するかどうかを知りたいです。を使用し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;
    }
4

2 に答える 2

5

falseの引数を にgetBoolean()置き換えるとtrue、ロジックが適合します。

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

trueそのような設定がない場合は、これが返されます。

于 2010-09-21T16:22:49.000 に答える
0

Intent.ACTION_PACKAGE_FIRST_LAUNCH をリッスンする BroadcastReceiver を登録できます。

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

于 2011-06-24T15:40:36.750 に答える