当前位置:   article > 正文

安卓的五种存储方式_请简述android平台提供的五种存储方式。

请简述android平台提供的五种存储方式。

安卓的存储方式有5种,分别为:

  1. SharedPrefences;
  2. SQLite数据库
  3. 文件存储
  4.  网络存储
  5.  ContentProvider

思维导图

 1. 数据存储的类型和存放位置

应用程序一般有一下几种类型:

file-普通的文件存储
database-数据库文件(.db文件)
sharedPreference-配置数据(.xml文件)
cache-图片缓存文件

应用数据的存放位置:

com.xxx.xxx 为自定义的包名

/data/data/com.xxx.xxx/cache - 应用内缓存(注:对应方法getCacheDir())
/data/data/com.xxx.xxx/databases - 应用内数据库
/data/data/com.xxx.xxx/shared_prefs - 应用内配置文件
/data/data/com.xxx.xxx/files - 应用内文件(注:对应方法getFilesDir())
SD卡的文件(开发者自定义的)

 

2. SharedPreferences存储数据

1)使用范围

Android 提供了一个轻量级的存储类 SharedPreferences使用 XML 格式保存一些键值对数据

当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在 Wifi 下才能 联网等相关信息,我们这些信息为用户的偏好 设置

 

2)SharedPrefences 的使用步骤

  1. 首先实例化一个 SharedPreferences 对象

    SharedPreferences sp = mContext.getSharedPreferences("filename", Context.MODE_PRIVATE);
    
    1. mContext 就是上下文,如果在 Activity 可以使用 Activity.this 或者 getApplicationContext() 方法获得

    2. filename 就是要保存的文件名,不要加上 .xml 扩展名,因为系统自己会加上

    3. Context.MODE_PRIVATE 私有的文件模式,一般都用 Context.MODE_PRIVATE

  2. 调用 sp.edit() 获取 sp 对象的写编辑器

    SharedPreferences.Editor editor = sp.edit();
    
  3. 调用 editor.putXxxx() 写数据操作 , Xxx 表示类型

    editor.putString("username","imyufei")
    
  4. 调用 editor.commit() 提交和保存数据

  5. 调用 sp.getXxxx() 去处 Xxx 类型的数据

  6. 调用 sp.remove(key) 可以删除 key 对应的数据

其中文件读取的模式有4种, 其中2 种是废弃的:

模式 说明
Context.MODE_PRIVATE 默认的操作模式,表示该文件是私有文件,只能够被应用本身访问,写入的内容会覆盖原有的数据
Context.MODE_APPEND 会检查文件是否存在,如果存在则把内容追加到文件末尾,否则新建一个文件进行写
Context.MODE_WORLD_READABLE 废弃 当前文件可以被其它 APP 读取
Context.MODE_WORLD_WRITEABLE废弃 当前文件可以被其它 APP 写入

这些模式可以使用 竖线(|) 叠加,比如

openFileOutput("site.txt",Context.MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE)

Editor有如下主要重要方法:

  1.                 SharedPreferences.Editor clear():清空SharedPreferences里所有数据
  2.                 SharedPreferences.Editor putXxx(String key , xxxvalue): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
  3.                 SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
  4.                 boolean commit(): 当Editor编辑完成后,使用该方法提交修改

 

3)具体实现例子

1. 自定义一个帮助读取的类

  1. package com.example.newdemo.storagefile;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. public class SharedPrehelper {
  5. private Context context;
  6. public SharedPrehelper(Context context){
  7. this.context = context;
  8. }
  9. public void save(String key, String value){
  10. // 实例化一个 sp 对象
  11. SharedPreferences sharedPreferences = context.getSharedPreferences("my_sp", Context.MODE_PRIVATE);
  12. // 调用 sp.edit() 获取 sp 对象的写编辑器
  13. SharedPreferences.Editor editor = sharedPreferences.edit();
  14. editor.putString(key, value);
  15. editor.commit();
  16. }
  17. // 获取数据
  18. public String read(String key){
  19. SharedPreferences sharedPreferences = context.getSharedPreferences("my_sp", Context.MODE_PRIVATE);
  20. return sharedPreferences.getString(key, "");
  21. }
  22. }

2. 设置主activity

  1. package com.example.newdemo.storagefile;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.app.backup.SharedPreferencesBackupHelper;
  4. import android.content.Context;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.widget.TextView;
  10. import com.example.newde
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/384618
推荐阅读
相关标签
  

闽ICP备14008679号