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