我采用的是利用packagemanager获取的versioncode,他的设置在上图的位置,(具体是structure中app的flavor选项)所以每次版本迭代的时候将versioncode的版本增加1,也可以增加2,3等只要是整数并且比上一个数字大就可以,这样在用户软件进行升级更新后,引导页的内容都会展示,否则不改变versioncode的值,在版本更新覆盖掉旧版本时引导页也会默认不显示….
具体代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 根据版本号判断是不是第一次使用
PackageInfo info=null;
try {
info=getPackageManager().getPackageInfo(getPackageName(),0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
int currentVersion = info.versionCode;
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
int lastVersion = sp.getInt("VERSION_KEY", 0);
if (currentVersion>lastVersion){
// 第一次启动将当前版本进行存储
sp.edit().putInt("VERSION_KEY",currentVersion).commit();
setContentView(R.layout.activity_intro);
intro_vp = (ViewPager) findViewById(R.id.intro_vp);
}else {
// 非第一次启动直接跳转
Intent intent=new Intent(this,SplashActivity.class);
startActivity(intent);
}
我们用getDefaultSharedPreferences返回的是一个默认的存储文件名称是包名加_preferences
也可以用自己定义的getSharedPreferences去设置
private static String getDefaultSharedPreferencesName(Context context) {
return context.getPackageName() + "_preferences";
}