Android学习笔记(八)

来源:互联网 发布:qq飞车t1神影至尊数据 编辑:程序博客网 时间:2024/05/21 01:44

Android学习笔记(八)

  • 持久化技术:指将那些内存中的瞬时数据保存在存储设备中,保证即使在手机或者电脑关机的情况下,这些数据仍然不会丢失。
    • 三种方式:文件存储、sharedPreference存储、数据库存储。
  • 文件存储:不对存储的内容进行任何的格式化处理,适合用于存储一些简单的文本数据或二进制数据
    • Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。传入两个参数,第一个参数是文件名,第二个参数是文件的操作模式,主要有两种模式:MODE_APPEND(向已存在的文件追加内容)和MODE_PRIVATE(覆盖原来的文件)。
    • openFileOutput()方法返回的是一个FileOutputStream对象。
    • Context类中提供了一个openFileInput()方法,用于从文件中读取数据,传入一个参数,即要读取的文件名。
    • openFileInput()方法返回的是一个FileInStream对象。
    • setSelection()方法调整光标位置。
    • 空值判断:.isEmpty()方法,如果为空(空字符或者null)会返回ture。
  • SharedPreferences存储:使用键值对的方式存储数据。
    • 获取SharedPreferences对象:
      1. Context类中的getSharedPreferences()方法:传入两个参数,第一个从那时用于指定SharedPrefences文件的名称,如果不存在则创建一个;第二个参数指定操作模式,主要有两种方式MODE_PRIVATE(只有当前的应用程序才可以对这个sharedPreferences文件进行读写)和MODE_MULTI_PROCESS(用于多个进程中对同一个SharedPreferences文件进行读写)
      2. Activity类中的getPreferences()方法:传入一个模式参数,使用这个方法会自动将当前活动的类名作为SharedPreferences的文件名。
      3. PreferencenManager类中的getDefaultSharedPreferences()方法:这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名Sharedpreferences文件。
    • 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
    • 向SharedPreferences.Editor对象添加数据,根据不同数据类型有不同的命令如putString(),传入两个参数,第一个参数为键,第二个参数即内容。
    • 调用commit()方法将添加的数据提交
    • 得到SharedPreferences对象后调用它的getString()(或者其他数据类型)获取信息。传入两个参数,第一个参数为键,第二个参数为默认值,当未找到相应键值时,返回默认值
  • SQLife数据存储:是一款轻量级的关系型数据库。
    • SQLlteOpenHelper帮助类:抽象类
      1. 抽象方法:创建数据库onCreate() 和升级数据库onUpgrade()
      2. 重要的实例方法:getReadableDatabase()getWritableDatabase(),两个方法都可以创建或者打开一个现有的数据库。,返回一个可对数据库操作的对象,不同的是当数据库不可写入时getReadableDatabase()返回的对象将以只读的方式打开,getWritableDatabase()方法则会出现异常。
      3. 构造方法:传入4个参数,第一个参数是Context,第二个参数是数据库名,第三个参数是允许我们在查询数据的时候返回一个自定义的Cursor,一般传入null,第四个参数表示当前数据库的版本号,可用于对数据进行升级操作。
    • 创建数据库:
      1. 把建表语句定义成了一个字符串常量
      2. 在onCreate()方法中调用SQLiteDatabase的execSQL()方法去执行建表语句。
      3. 通过getWritableDatabase()方法创建数据库
    • 升级数据库
      1. 在onUpgrade()方法中执行DROP语句”drop table if exists XXX”,发现数据库中已经存在了相应的表就将表删除。
      2. 让onUpgrade()方法执行:更改SQLiteOpenHelper的构造方法的第四个参数大于之前创建的即可。
    • 添加数据(Create):SQLiteDatabase提供了insert()方法,用于添加数据。传入3个参数,第一个参数是表名,第二个参数用于在未指定添加数据的情况下给某些为空的列自动赋值NULL,第三个参数是一个CountentValues对象,提供了一系列的put()方法重载,用于向ContentValues中铁甲数据。例如:values.put(“name”,”the Da Vinci Code”); db.insert(“Book”,null,values);
    • 更新数据(Update):SQLiteDatabase提供了update()方法,用于更新数据。传入4个参数,第一个参数为表名,第二个参数为ContentValues对象,把要更新的数据在这里组装,第三、第四个参数用于去约束更新某一行或者某几行中的数据,不指定即更新所有行。例如values.put(“price”,10.99);db.update(‘Book”,values,”name = ?”,new String[] {“The DaVinci Code”}
    • 删除数据(Delete):SQLiteDatabase提供了delete()方法,用于删除数据。传入3个参数,第一个参数为表名,第二、第三个参数用于去约束删除某一行或者某几行的数据,不指定默认删除所有行。例如db.delete(“Book”,”pages>?”,new String[]{“500”]);
    • 查询数据(Retriece):SQLiteDatabase提供了query()方法,用于查询数据。传入七个参数,第一个参数是表名,第二个参数用于去指定查询哪几列,第三、第四个参数用于去约束查询哪几列,如果不指定默认查询某几列。第五个参数指定需要去group by 的列,不指定则表示不对查询结果进行group by操作。第六个参数用于对group by之后的数据进行进一步的过滤,不指定则不过滤。第七个参数用于指定查询结果的排序方式,不指定则表示使用默认的排序方式。
0 0
原创粉丝点击