今天跟大家分享如何让软件在第一次安装时和更新后显示引导页,这个我们根据版本号来识别。还有定时进入主页面。
1.得到版本号的代码:
private String getVersionName(){
//用来管理手机的APK
PackageManager pm = getPackageManager();
try {
//得到知道的APK的功能清单文件
PackageInfo info = pm.getPackageInfo(getPackageName(), 0);
return info.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return "";
}
}
2.用SharedPreferences来保存现在的版本号:
public class ActivityFirst extends ActionBarActivity {
private SharedPreferences sp;
private Intent intent;
private Handler handler = new Handler() {
};
@Override
protected void onCreate(Bundle savedInstanceState) {
sp = getSharedPreferences("config",MODE_PRIVATE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
//判断是进入主页面还是引导页
isShowingMain();
}
/**
* 进入主页
*/
private void enterMain() {
intent = new Intent(ActivityFirst.this, ActivityMain.class);
startActivity(intent);
finish();
}
/**
* 进入引导页
*/
private void enterGuideView() {
intent = new Intent(ActivityFirst.this, ActivityGuide.class);
startActivity(intent);
finish();
};
/**
* 通过SharedPreferences判断是否进入主界面
*/
private void isShowingMain(){
String versionName = getVersionName();
String vn = sp.getString("versionname","0.0001");
//判断版本号是否一致,一致的话2秒后进入主页面,否则进入引导页
if (versionName.equals(vn)){
handler.postDelayed(new Runnable() {
@Override
public void run() {
enterMain();
}
},2000);
}else {
SharedPreferences.Editor edit = sp.edit();
edit.putString("versionname",versionName);
edit.commit();
handler.postDelayed(new Runnable() {
@Override
public void run() {
enterGuideView();
}
},0);
}
}