Android保存数据
Android保存数据的方式,每种存储方式都各有不同,有如下四种:
1、Shared Preferences:主要用于保存程序的系统配置信息。用来存储“key-values paires”。一般用于保存程序启动时设定的信息,以便在程序下一次启动时继续保留前一次设定的信息。
2、Files:用文件的形式保存信息。可以通过对文件的读写来获取或保存相关信息。
3、SQLite:用数据库的形式保存信息。SQLite是一个开源的数据库 系统。
4、NetWork:将数据保存于网络。
1. PreferencesPreferences是一个较轻量级的存储数据的方法,具体使用方法:
//在模块A中保存值:SharedPreferences.Editor sharedata = getSharedPreferences(“data”, 0).edit();sharedata.putString(“name”,”shenrenkui”);sharedata.commit();//在模块B中取值: SharedPreferences sharedata = getSharedPreferences(“data”, 0); String data = sharedata.getString(“name”, null); Log.i(TAG,”data=”+data);
注意:
(1)Context.getSharedPreferences(Stringname, inttype) 的参数跟我们在创建数据的时候的数据权限属性是一样的,存储和取值的过程这有点像HashMap但是比HashMap更具人性化。
(2)getXXX(Objectkey,ObjectdefualtReturnValue) 第二个参数是当你所要的key对应没有时候返回的值。这就省去了很多逻辑判断。getXXX可以是getString、getBoolean、getLong….
(3)其生成的文件放在:/data/data/XXX/shared_prefs/…
从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。
(4)如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。
(5)需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。
比如我在EveryLogin中的应用:
//存储用户名和密码到本地SharedPreferences.Editor sharedata = getSharedPreferences(“data”, 0).edit();sharedata.putString(“username”,username);sharedata.putString(“password”,password);sharedata.commit();
//初始化界面上,“用户名”和“密码”中的内容// 取得活动的Preferences对象,获取存储数据的库SharedPreferences settings = getSharedPreferences(“data”, 0);// 取得值; 第二个参数是当你所要的key对应没有时候返回的值。String value_username = settings.getString(“username”, null); String value_password = settings.getString(“password”, null); et_username.setText(value_username); //设置界面上的值 et_password.setText(value_password);
参考资料:
1、http://android.tgbus.com/Android/tutorial/201104/349042.shtml
相关文章
- 加密狗android,Android系统加密狗的设计与实现
- android 读取本地数据库db文件(Android sqlite)
- Android n_android 反编译
- 基于android的_android studio创建activity
- Android保存图片到相册(适配android 10以下及以上)
- 软件测试|一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建
- 【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
- 【Android 安装包优化】WebP 应用 ( Android 中使用 libwebp.so 库编码 WebP 图片 )
- 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
- 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read from remote )
- 【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )
- 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | aosp 中搜索 dex2oat 源码 | dex2oat.cc#main 主函数源码 )
- 【Android 逆向】修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑩ ( 自定义任务类继承 DefaultTask 类 | TaskContainer#create 函数创建任务 | 生成自定义任务)
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- Android控制文字水平间距android:letterSpacing详解手机开发
- Android实现微信自动抢红包的程序详解手机开发
- [android] 数据的异步加载和图片保存详解手机开发
- Android下保存数据到SharePreference和从SharePreference读取数据详解编程语言
- Android调试器爆漏洞,可获取设备内存数据
- android开机自启动app示例分享
- android开发教程之listview显示sqlite数据