android 启动页与数据保存
来源:互联网 发布:angularjs 2.0不用node 编辑:程序博客网 时间:2024/05/21 17:14
介绍
1、android 市面上大部分app首次启动分为flashActivity、GuideActivity、MainActivity2、一般情况下如果第一次启动将从flashActivity-->GuideActivity-->MainActivity3、而当我们将程序退出后台后,再次启动从flashActivity-->MainActivity那么我今天写一写实现这个过程的两个方法我们要用到的是安卓持久化的一个类SharedPreference.下面是我写的一个简单的封装类:
SharedPreferenceUtils
public class SharedPreferenceUtils{ private SharedPreference mSharedPreference ; private SharedPreference.Editor mEditor; private static SharedPreferencesUtils instance;//获取单例 public static SharedPreferencesUtils getInstance(Context context){ if (instance == null){ instance = new SharedPreferencesUtils(context); } return instance; } public SharedPreferencesUtils(Context context){ mSharedPreferences = context.getSharedPreferences(context.getString(R.string.app_name),Context.MODE_PRIVATE); mEditor = mSharedPreferences.edit(); } public void writeBoolean(String key , boolean value){ mEditor.putBoolean(key,value); mEditor.commit(); } public boolean readBoolean(String key,boolean defauValue){ return mSharedPreferences.getBoolean(key, defauValue); } public void writeString(String key,String value){ mEditor.putString(key,value); mEditor.commit(); } public String readString(String key,String value){ return mSharedPreferences.getString(key,""); } public void writeInt(String key,int value){ mEditor.putInt(key,value); mEditor.commit(); } public int readInt(String key,int value){ return mSharedPreferences.getInt(key,value); }}
第一种
从FlashActivity中进行判断:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initData(); } @Override protected void initData() { versionName.setText(getVersionName()); //写一个标记用于判断是否第一次安装 final `SharedPreferencesUtils instance = SharedPreferencesUtils.getInstance(this);` final boolean isFirst = instance.readBoolean(IS_FIRST,true );// new Handler().postDelayed(new Runnable() { @Override public void run() { /** * 详细讲解: * 1、当用户第一次安装此软件,走到此步时sharedPreferences ,读取的值并没有,给它一个true值, * 3、而此时将sp中写入减值是flase,那么以后永远不会走这一步 */ if(isFirst){//第一进入是true instance.writeBoolean(IS_FIRST,false);//第一次进入写入false startActivity(new Intent(FlashActivity.this, GuideActivity.class)); finish(); }else { startActivity(new Intent(FlashActivity.this,MainActivity.class)); finish(); } } },FLASH_START_TIME); }
第二种
在GuideActivity中进行判断
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferencesUtils instance = SharedPreferencesUtils.getInstance(this); if(!instance.readBoolean("isFirst",true)){ enter(); } setContentView(R.layout.activity_yindao); Button btnSkip = (Button) findViewById(R.id.btn_skip); btnSkip.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { instance.write("isFirst",false); enter(); } }); } private void enter(){ startActivity(new Intent(GuideActivity.this,MainActivity.class)); finish(); }
0 0
- android 启动页与数据保存
- android 数据保存与提取
- Android数据保存与提取
- android SharedPreferences 保存数据与读取数据
- android 横竖屏切换与数据保存
- android 横竖屏切换与数据保存
- android横竖屏切换与数据保存
- android 超简单的数据保存与读取 一行代码搞定数据保存与读取 ACache
- 数据加密与保存
- 数据读取与保存
- android 数据保存方式
- Android 保存数据SharedPreferences
- Android 保存全局数据
- Android 永久保存数据
- android File保存数据
- SharedPreferences保存android数据
- Android保存数据
- android保存数据
- Linux下的文件及文件后缀名
- HDU-2024C语言合法标识符
- Ubuntu配置任意版本的apt-get镜像
- 公钥私钥加解密原理
- 基础知识(二)-Servlet
- android 启动页与数据保存
- 算法题:求从n个数组任意选取一个元素的所有组合
- VMware + CentOS 网络设置为NAT模式
- 指针专题
- Socket
- 基础知识(三)-JSP
- LeetCode 88. Merge Sorted Array
- 必须了解的基础的 Linux 网络命令
- SSM + Shiro 整合 (7)- 认证和授权部分缓存的添加