android的数据存储(一)
来源:互联网 发布:微信windows手机版 编辑:程序博客网 时间:2024/06/08 06:05
一、数据存储简介
应用程序都具有数据的读取和写入功能,android应用也不例外,应用程序的设置参数,程序运行状态数据等需要保存的外部存储上,以防数据丢失。若应用程序只有少量数据需要保存,则用普通文件就可以,若应用程序有大量数据需要存储,访问,则需要借助数据库。因此本篇将介绍android的普通文件存储,android内置的数据SQLite的应用。
二、Android读写SharedPrefernce
对于少量的数据,如何是否打开音效,是否提供振动效果等数据都可以用Android读写SharedPrefernce进行保存。
(1).SharedPrefernce简介
SharedPrefernce保存数据主要是类似配置信息格式的数据,保存的数据类型是key-value数值对。SharedPrefernce接口负责读取用于程序的数据,提供了如下等方法来访问SharedPrefernce的数据。
boolean contains(String key):判断SharedPrefernce是否包含该key;
Map getAll(): 获取SharedPrefernce中所有的数据;
boolean getXxx(String key,Type value) :获取SharedPrefernce中指定的key对应的value.
SharedPrefernce本身是一个接口,若需要创建该实例则需要通过Context提供的
getSharedPrefernces(String name,int model )方法类获取。其中model有如下两个参数值:
Context.MODEL_WORLD_READABLE 指定该数据只能被其他应用读,不能写;
Context.MODEL_WORLD_WRITEABLE:指定该数据只能被其他应用读写。
SharedPrefernce本身没有提供写入的方法,需要调用edit()方法获取对应的Editor对象,Editor提供了如下方法向SharedPrefernce写入数据:
1.clear():清空SharedPrefernce中所有数据
2.PutXxx( String key ,Type value):向SharedPrefernce指定的key存入value数据。
3.remove(String key):删除SharedPrefernce指定key的数据
4.Commit():提交修改的内容。
(2)、程序实现
下面通过一个例子介绍如何向SharedPrefernce写入数据。
public class SharedPreferencesTest extends Activity { Button write,read; SharedPreferences preference; SharedPreferences.Editor editor; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //写入和读取数据 write=(Button) findViewById(R.id.write); read=(Button) findViewById(R.id.read); //获取 preference=getSharedPreferences("greekw", Context.MODE_WORLD_READABLE); editor=preference.edit(); read.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int flag=preference.getInt("flag",0); String time=preference.getString("time", null); String result = time == null ? "您暂时还未写入数据" : "写入时间为:" + time + "\n上次生成的随机数为:" + flag; Toast.makeText(SharedPreferencesTest.this, result,5000).show(); } }); write.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 " + "hh:mm:ss"); editor.putString("time",sdf.format(new Date())); editor.putInt("flag", 1); editor.commit(); } }); }
上述例子说明读取和写入SharedPrefernce的数据,SharedPrefernce的数据保存在data/data/packageName的目录下,以xml格式保存。
(3)、读写其他应用的SharedPrefernce
读写其他拥有的SharedPrefernce,则需要获取该SharedPrefernce的应用指定的相应的权限。如该应用指定为Context.MODEL_WORLD_READABLE,表明该应用可被其他重新读取。写也类似。下面是读写其他应用的SharedPrefernce的步骤:
1.创建其他应用程序对应的Context. context=createPackageContext(“包结构”); anroid的包名是应用程序的唯一标识,因此可根据包名获取相应的Context.Context是Android的全局信息接口
2.调用其他应用的Context的SharedPrefernce获取相应的SharedPrefernce对象
3.调用其它应用的SharedPrefernce的editor()获取相应的Editor。
- Android的数据存储(一)
- android的数据存储(一)
- Android数据存储(一)
- Android数据存储(一)
- Android数据存储(一):SharedPreferences存储
- Android 数据存储(一)文件存储
- Android数据存储(一)
- Android数据存储一
- Android数据的存储方式(一) —— 总览
- 关于Android开发数据存储的方式(一)
- Android中数据的存储方式(一)
- Android的数据存储--SQLite数据库(一)
- Android数据存储(一)Shared Preferences数据存储
- android数据存储(一)之SharedPreferences
- Android数据存储(一):SharedPreferences
- Android数据存储方式(一)文件
- Android数据存储(一)文件
- Android数据存储方式(一)文件
- 讲义15:存储过程
- Incorrect number of FETCH variables
- 讲义14:自定义函数
- ffmpeg tool 简单介绍
- TCP、UDP、HTTP、SOCKET之间的区别
- android的数据存储(一)
- 讲义13:流程控制
- 俄罗斯方块
- 1041. Be Unique (20)【水题】——PAT (Advanced Level) Practise
- 讲义12:批处理、脚本、变量
- 众数问题
- JS中的call与apply详解
- 图中两个点之间的路线
- 1042. Shuffling Machine (20)【模拟】——PAT (Advanced Level) Practise