android 启动页与数据保存
2016-09-26 23:24
369 查看
介绍
1、android 市面上大部分app首次启动分为flashActivity、GuideActivity、MainActivity 2、一般情况下如果第一次启动将从flashActivity-->GuideActivity-->MainActivity 3、而当我们将程序退出后台后,再次启动从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(); }
相关文章推荐
- Android四种保存数据的方法
- Android开发中保存数据的四种方法方法
- Android开发中保存数据的四种方法方法
- Android中保存数据常用的方法
- Android开发之数据保存技术
- Android保存数据的技巧
- Android中File形式保存数据【安卓进化三十】
- Adobe Flash Builder 4.5 Android Air 程序开发系列 之四 打开与关闭应用程序是的保存数据
- Android的关键的持久数据应该在onPause()方法中保存
- [Android开发]Android数据保存之PreferenceActivity
- Android--将数据保存到SDCard中
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- Adobe Flash Builder 4.5 Android Air 程序开发系列 之五 保存数据的几种方式
- Android开发中保存数据的四种方法
- Android开发中保存数据的四种方法方法
- android 将map保存到sqlite数据库中,从表数据中取回map
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- android---数据保存之SQLite(实现登录用户信息保存