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

相信大家在首次启动某个程序时会出现程序的引导界面,但是当我们第二次进入时,引导界面已经不再出现了,这是为什么呢?
这是程序记录了用户是否是第一次启动程序,那这个又是如何实现的呢?下面我将利用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下载


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值