@excavator
2015-05-28T12:58:25.000000Z
字数 4705
阅读 2424
Android 慕课 数据存储
SharedPreference:
- 是一种轻型的数据存储方式
- 本质是基于XML文件存储key-value键值对数据
- 通常用于存储一些简单的配置信息
实现SharedPreferences存储的步骤如下:
package com.excavator.datastorage;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {EditText etUserName, etUserPass;CheckBox chk;SharedPreferences pref;SharedPreferences.Editor editor;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);/* SharedPreferences pref = getSharedPreferences("myPref", MODE_PRIVATE);SharedPreferences.Editor editor = pref.edit();editor.putString("name", "张三");editor.putInt("age", 30);editor.putLong("time", System.currentTimeMillis());editor.putBoolean("default", true);editor.apply();editor.remove("default");editor.apply();System.out.println(pref.getString("name", ""));System.out.println(pref.getInt("age", 0));*/initViews();pref=getSharedPreferences("UserInfo", MODE_PRIVATE);editor = pref.edit();String name=pref.getString("userName", "");if (name==null) {chk.setChecked(false);}else {chk.setChecked(true);etUserName.setText(name);}}private void initViews() {etUserName = (EditText) findViewById(R.id.et_userName);etUserPass = (EditText) findViewById(R.id.et_passWord);chk = (CheckBox) findViewById(R.id.checkSaveName);}public void doClick(View view) {switch (view.getId()){case R.id.btn_Login:String name = etUserName.getText().toString().trim();String pass = etUserPass.getText().toString().trim();if ("admin".equals(name)&&"123456".equals(pass)){if (chk.isChecked()) {editor.putString("userName", name);editor.apply();}else {editor.remove("userName");editor.apply();}Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG).show();}else {Toast.makeText(MainActivity.this, "禁止登录", Toast.LENGTH_LONG).show();}break;default:break;}}}
SQLite简介:
SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。
Cursor是Android查询数据后得到的一个管理数据集合的类,正常情况下,如果查询得到的数据量较小时不会有内存问题,而且虚拟机能够最终保证Cursor最终被释放掉。
然而如果Cursor的数据量特别大,特别是如果里面有Blob信息时,应该保证Cursor占用的内存被及时释放掉,而不是等待GC来处理。并且Android明显是倾向于编程者手动的将Cursor close掉,因为在源代码中我们发现,如果等到垃圾回收器来回收时,也就是如>果不手动关闭,系统会报错,会给用户以错误提示。
ContentValues:用于存储一组可以被ContentResolver处理的值
ContentValues values=new ContentValues(); //类似HashMap key valuevaluse.put("name","Jack");执行对应的SQL操作
Android中 文件存储的操作:
- Activity的openFileOutput()方法可以用于把数据保存到文件中
- 创建的文件保存在/data/data//files目录
- 实现过程与在Java中保存数据到文件中一样
文件的模式:
Android中有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userId,当该应用要去访问其他资源比如文件的时候,就需要userId匹配。默认情况下,任何应用创建的文件,SharedPreferences,数据库都应该是私有的(位于/data/data//files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,只有这样其他程序才能正确访问。
在此输入正文