欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

最老程序员开发实训9--Android---应用介绍页面实现1,实训9--android---

来源: 开发者 投稿于  被查看 49615 次 评论:247

最老程序员开发实训9--Android---应用介绍页面实现1,实训9--android---


在这一节中,我们回到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 闫涛
我的支付宝:yt7589@hotmail.com




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

相关频道:

用户评论