android应用程序第一次启动时显示引导界面

市面上好多优秀的应用(举例新浪微博、UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验。java

通常来讲用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导-主界面 的方式浏览器

用户没有安装新版本或者不是第一次进入的时候都会显示成 欢迎页面-主界面的方式

ide

想要实现这种不一样的分支,咱们就要使用一种变量来存储咱们是不是第一次进入应用,固然这种变量不多是存储在应用里,而是要存储在应用包名底下的文件中post

那么咱们就来看看实现这种变量存储和修改的步骤吧ui

一、在应用的欢迎页面Splash Activity里定义一个变量isFirstIn(前一篇文章中讲了Splash),初始值无所谓,应为咱们立刻要从文件中读取这个值this

二、定义SharedPreferences对象,并经过该对象获取文件中isFirstIn键(key)对应的值(value),这里默认为true,由于第一次进入应用时咱们并无建立该文件和该变量idea

三、在Splash中须要跳转的地方作一个if判断,若是是isFirstIn是true说明咱们是第一次进入,那么跳转到GuideActivity1,若是是false说明咱们不是第一次进入,那么跳转到主页面MainActivity.net

四、假如GuideActivity1是最后一个使用向导页,咱们要在GuideActivity1结束以后默认跳转到MainActivity里,那么咱们须要在跳转以前改变一下isFirstIn值为false,并存到文件里,这样下次进入应用时Splash能够从文件里获取值为false的isFirstIn值,这样就能够经过分支直接跳转到MainActivity了xml

下面关键部分的代码对象

 

Splash.Java

boolean isFirstIn = false;
//onCreate中
SharedPreferences preferences = getSharedPreferences("first_pref",
    MODE_PRIVATE);
isFirstIn = preferences.getBoolean("isFirstIn", true);
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
     if (isFirstIn) {
      // start guideactivity1
      intent = new Intent(Splash.this, GuideActivity1.class);
     } else {
      // start TVDirectActivity
      intent = new Intent(Splash.this, TVDirectActivity.class);
     }
     Splash.this.startActivity(intent);
     Splash.this.finish();
    }
   }, SPLASH_DISPLAY_LENGHT);

 

GuideActivity1.java 在引导页面结束前必定要修改SharedPreferences里边的值,这样第二次进入的话才会跳转到主页面,不进引导页。

  SharedPreferences preferences = getSharedPreferences(
      "first_pref", MODE_PRIVATE);
    Editor editor = preferences.edit();
    editor.putBoolean("isFirstIn", false);
    editor.commit();

 

最后能够在应用包名底下shared_prefs文件夹下找到咱们在应用里定义的first_pref.xml文件,打开能够看到里面



 

这种使用SharedPreferences存储变量的方法不只可使用与欢迎页面与使用向导,能够随意在程序任何位置使用,用来存储应用退出以后也要记录的某些关键变量或值

相关文章
相关标签/搜索