您的位置:首页 > 移动开发 > Android开发

Android开发中使用SharedPreferences记录用户是否第一次启动程序

2015-12-11 09:19 597 查看
相信大家在首次启动某个程序时会出现程序的引导界面,但是当我们第二次进入时,引导界面已经不再出现了,这是为什么呢?

这是程序记录了用户是否是第一次启动程序,那这个又是如何实现的呢?下面我将利用SharedPreferences来实现保存用户是否首次启动程序。

(前面我写了一个关于如何使用ViewPager实现引导界面的博客,这个demo就是在前面的基础之上实现的,在这里我就只贴出SharedPreferences的实现代码了。)

具体实现步骤:
1.实例化SharedPreferences对象(第一步)

2.实例化SharedPreferences.Editor对象(第二步)
3.保存数据 (第三步)

4.提交当前数据 (第四步)

package com.example.viewpagedemo;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;

/**
* 软件启动界面
*
* @author xhb
*/
public class WelcomeActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
new Thread() {
public void run() {
try {
Thread.sleep(1500);// 睡眠1500毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
Message msg = hand.obtainMessage();
hand.sendMessage(msg);
}

}.start();
};

Handler hand = new Handler() {
public void handleMessage(android.os.Message msg) {
super.handleMessage(msg);
if (isFristRun()) {
// 如果是第一次启动程序则进入引导界面
Intent intent = new Intent(WelcomeActivity.this,
GuideActivity.class);
startActivity(intent);
} else {
// 如果不是第一次启动则进入主页
Intent intent = new Intent(WelcomeActivity.this,
HomeActivity.class);
startActivity(intent);
}
finish();
};
};

// 判断是否是第一次启动程序 利用 SharedPreferences 将数据保存在本地
private boolean isFristRun() {
//实例化SharedPreferences对象(第一步)
SharedPreferences sharedPreferences = this.getSharedPreferences(
"share", MODE_PRIVATE);
//实例化SharedPreferences.Editor对象(第二步)
boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true);
Editor editor = sharedPreferences.edit();
if (!isFirstRun) {
return false;
} else {
//保存数据 (第三步)
editor.putBoolean("isFirstRun", false);
//提交当前数据 (第四步)
editor.commit();
return true;
}
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {

}
return true;
}

}
DEMO下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: