当前位置: 代码迷 >> Android >> 最老软件工程师开发实训9-Android-应用介绍页面实现1
  详细解决方案

最老软件工程师开发实训9-Android-应用介绍页面实现1

热度:92   发布时间:2016-04-27 23:02:11.0
最老程序员开发实训9--Android---应用介绍页面实现1

在这一节中,我们回到Android端,讨论一下当应用第一次运行时,通常采用的一页一页滑动的介绍页面的实现方式。

首先,我们需要知道应用是否是第一次运行。判断应用是否是第一次运行,通常是应用持久化保存一个特定的信息,每次启动时检查是否有该信息,如果没有则代表第一次运行。对于信息的持久化存储,在Android平台,大约有三种方法,分别是SharedPreferences、文件、SQLite数据库,通常类似应用是否第一次运行这种小信息,一般会选择保存在SharedPreferences中。

我们首先在库工程WkyLib中的controller包内,定义一个基类为Application的WkyApplication类,在该函数中实现判断应用是否是第一次运行。Android系统中Application可以视为一个Android系统下系统提供的单例模式(Singleton)的类,可以保存一些全局变量等信息。

WkyApplication类的代码如下所示:

public class WkyApplication extends Application {	/**	 * 通过查询保存在SharedPreference里面的值,检查是否是首次运行	 * @return	 * 【闫涛 2015.09.09】初始版本	 */	public boolean isFirstRun() {		SharedPreferences pref = getSharedPreferences(S_PREF_NAME, MODE_PRIVATE);		return pref.getBoolean(S_PREF_FIRST_RUN, true);	}		/**	 * 通过判断SharedPreference里是否有userId等信息,判断用户是否注册	 * @return	 * 【闫涛 2015.09.09】初始版本	 */	public boolean isLogin() {		return true;	}			public final static String S_PREF_NAME = "WkgJys";	public final static String S_PREF_FIRST_RUN = "firstRun";}
上面的代码比较简单,不用解释。但是这里还想强调一下,getSharedPreferences中使用预先定义的常量,而不是直接写字符串,这样首先不容易出现因为拼写错误而出现找不到值的问题,同时增加了代码的可读性,虽然不算什么,但是良好的编程习惯是非常非常重要的。不重视的话,迟早要付出惨重的代价。

在具体应用WkgJys工程中,在controller包中定义继承于WkyApplication的JysApplication类,代码如下所示:

public class JysApplication extends WkyApplication {}
为了让该类可以起作用,在WkgJys工程的Manifest文件中,加入android:name属性:

<application    android:allowBackup="true"    android:name="com.weikangyun.wkgjys.controller.JysApplication"    android:icon="@drawable/ic_launcher"    android:label="@string/app_name"    android:theme="@style/AppTheme" >
最后是在Splash页面中,在定时结束时,判断是否是第一次运行,第一次运行则启动应用介绍页面,代码如下所示:

startMainActivityTask = new Runnable() {    @Override    public void run() {        if (jysApplication.isFirstRun()) {            Log.e("wky", "显示介绍页面");        } else if (!jysApplication.isLogin()) {            Log.e("wky", "启动登录页面");        } else {            Intent intent = new Intent(SplashActivity.this, MainActivity.class);            startActivity(intent);        }        finish();    }        	};




华丽的分隔线
******************************************************************************************************************************************************************************
希望大家多支持,有大家的支持,我才能走得更远,谢谢!
银行账号:622202 0200 1078 56128 闫涛
我的支付宝:[email protected]




版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案