Android数据存储之Shared Preferences分析
发布时间:2021-11-25 19:26:21 所属栏目:教程 来源:互联网
导读:话说Android的数据存储一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据的话,就要使用Android提供的Content Providers(数据共享)。 Android中4种数据存储方式如下: -Shared Preferences
话说Android的数据存储一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据的话,就要使用Android提供的Content Providers(数据共享)。 Android中4种数据存储方式如下: -Shared Preferences:轻量级的键值存储机制,只可以存储基本数据类型。Shared Preferences主要是针对系统配置信息的保存,比如我们经常使用的情景模式设置,这会设置了静音,关机后在开机后,还是静音,改成标准的时候,关机或者跳出其他界面时,它依旧是标准,这就是Shared Preferences的功能。 -Files:和java中的文件差不多,也是要与流相关联吧。在Android中,文件是一个应用程序私有的,也就是说给应用程序是无法去读写其他的应用程序的文件。Files就是把需要保存的文件信息通过它的格式记录下来,下次需要的时候,通过读取此文件就可以获取了。我们知道,android采用了Linux核心,在此系统中,文件也是Linux的形式。 -SQLite:android中比较受欢迎的数据存储,因为它支持SQL语句。是一个开源的关系数据库,与普通关系数据库一样,也具有ACID的特性,可以用来存储大量的数据,并且能够很容易的对数据进行使用、维护、更新等基本操作。www.linuxidc.com所以相对于操作,比上面2中来的比较的麻烦。 -NetWork:见名思意,网络,即网络存储,也可以这么认为吧,通过网络来获取和保存数据资源吧,前提是网络连接状态是否畅通。 我记得MySql配置后,会由一个ini文件,当然,不只是MySql有的,ini文件的作用就是用来保存应用程序的一些属性设置。这里的Shared Preferences就是和ini的作用差不多。举个例子来说下:通过上一次用户所做的修改或者自定义参数设置,当再次启动程序后依然保持原有的设置。通过getPreferences()方法获得Preferences对象,通过“SharedPreferences.Editor editor = state.edit();”取得编辑的对象,接着通过"editor.put...()"方法添加数据,最好不要忘记还需要进行提交“editor.commit();”保存需要保存的方法。SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。 下面用个例子来跑一下吧: MainActivity类 public class MainActivity extends Activity { private boolean flag = false; private TextView mTextView = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) this.findViewById(R.id.TextView01); /*对数据进行加载*/ //通过getPreferences()方法获取SharedPreferences对象 SharedPreferences set = getPreferences(Activity.MODE_PRIVATE); //进行设置值 flag = set.getBoolean("flag", false); if (flag) { mTextView.setText("当前状态:开"); flag = true; } else { mTextView.setText("当前状态:关"); } } public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_UP: mTextView.setText("当前状态:开"); flag = true; break; case KeyEvent.KEYCODE_DPAD_DOWN: mTextView.setText("当前状态:关"); flag = false; break; } return true; } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { /*但我们退出此应用程序的时候就会为我们保存数据*/ //获取SharedPreferences对象 SharedPreferences state = getPreferences(0); //获取SharedPreferences.Editor编辑对象 SharedPreferences.Editor editor = state.edit(); //将需要保存的值添加到编辑器中 editor.putBoolean("flag", flag); //提交编辑器的内容,以此保存 editor.commit(); this.finish(); return true; } return super.onKeyDown(keyCode, event); } } 运行最后的结果,操作的每一步骤我都粘贴出来: 按下键盘的向下键,调制为“开” 返回到主页面,或者其他页面,只要退出该应用程序即可。这里就退到主页面吧: 最后,再进去看一下吧: 看看数据保存在哪里吧:data/data/ (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |