Android判断APP是否第一次启动

时间:2022-01-03 16:33:35

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();
}

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();
}

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