安卓判断是否第一次启动程序

时间:2021-03-30 16:36:47

1.利用SharedPreferences设置一个标签 
在第一次启动时读取该标签默认为true,然后把文件中的该值设置为false即可。

SharedPreferences setting = getSharedPreferences(YOUR_PREF_FILE_NAME, 0); 
Boolean user_first = setting.getBoolean("FIRST",true);
if(user_first){//第一次
setting.edit().putBoolean("FIRST", false).commit();
Toast.makeText(MainActivity.this, "第一次", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "不是第一次", Toast.LENGTH_LONG).show();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.通过versionCode来判断 
1、从manifest中读取到Android:versionCode, 
2、然后将其与preference中的versioncode做比较, 
3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次启动,

PackageInfo info = getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
int currentVersion = info.versionCode;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int lastVersion = prefs.getInt(VERSION_KEY, 0);
if (currentVersion > lastVersion) {
//如果当前版本大于上次版本,该版本属于第一次启动
......
//将当前版本写入preference中,则下次启动的时候,据此判断,不再为首次启动
prefs.edit().putInt(VERSION_KEY,currentVersion).commit();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

其中PACKAGE_NAME为包名,VERSION_KEY为自定义的文件存储路径,名称任意取。