如何检测用户是否第一次使用我的应用程序?

时间:2010-09-21 16:17:45

标签: java android sharedpreferences

我想知道用户是否第一次使用该应用程序。我正在使用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 个答案:

答案 0 :(得分:5)

false中的getBoolean()参数替换为true,然后逻辑将适合。

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

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

答案 1 :(得分:0)

你可以注册一个BroadcastReceiver来监听Intent.ACTION_PACKAGE_FIRST_LAUNCH

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