android 启动页与数据保存
16lz
2021-01-23
介绍
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(); }
更多相关文章
- Android GoogleMap Overlay (图层标记)
- Android第三十一期 - 市面上所有引导页的效果
- Android地图添加标记和文字【代码片段】
- Android 数字标记
- Android百度地图SDK—地图标记
- android百度地图标记点代码
- Android百度地图基础实现(标记+GPS)
- XML标记的语义
- XML标记语言的基本概念及语法的入门教程介绍(图)