在这一节中,我们回到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]
版权声明:本文为博主原创文章,未经博主允许不得转载。