我想知道用户是否首次使用该应用程序。我在用 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;
    }
有帮助吗?

解决方案

更换 false 参数 getBoolean() 经过 true, ,然后逻辑适合。

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

这将返回 true 如果没有这样的设置。

其他提示

您可以注册一个广播员来收听intent.action_package_first_launch

http://developer.android.com/reference/android/content/intent.html#action_package_first_launch

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top