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

Java 如何检测用户是否第一次使用我的应用程序?,java,android,sharedpreferences,Java,Android,Sharedpreferences,我想知道用户是否是第一次使用该应用程序。我使用的是SharedReferences,但我不确定我的逻辑是否正确 如何在用户首次启动时将myisFirstLaunchedboolean设置为true,然后在完成工作后立即设置为false protected void onStart() { super.onStart(); if(isFirstLaunch()){ populateDefaultQuotes();

我想知道用户是否是第一次使用该应用程序。我使用的是
SharedReferences
,但我不确定我的逻辑是否正确

如何在用户首次启动时将my
isFirstLaunched
boolean设置为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;
    }

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

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

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

您可以注册一个BroadcastReceiver来监听意图。操作\u程序包\u首先\u启动


请注意,如果用户从应用程序管理器中清除数据,共享引用将被删除。这一点很好。有比SharedReference更正确的解决方案吗?