分析一
SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
以下表格为获取SharedPreferences对象的两个方法:
返回值
|
函数
|
备注
|
SharedPreferences
|
Context.getSharedPreferences(String name,int mode)
|
name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件)。
mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。
|
SharedPreferences
|
Activity.getPreferences(int mode)
|
配置文件仅可以被调用的Activity使用。
mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。
|
如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用commit()方法提交更改后的配置文件。
以下是示例代码:
import android.app.Activity;
import android.content.SharedPreferences;
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
. . .
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
//载入配置文件
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
//或者使用 SharedPreferences settings = getPreferences(0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
//写入配置文件。可以使用SharedPreferences.Editor来辅助解决。
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
editor.commit(); //一定要记得提交
//或者再简单化一可以这样写
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
setting.edit().putBoolean(“silentMode”,mSilentMode).commit();
}
}
|
分析二
SharedPreference主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成。 类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。
例子:
工程1:
- SharedPreferencesshp=getSharedPreferences(SharePreference_name,Context.MODE_WORLD_READABLE);
- SharedPreferences.Editoreditor=shp.edit();
- editor.putInt("storedInt",100);
- editor.commit();
SharedPreferences shp=getSharedPreferences(SharePreference_name, Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = shp.edit();
editor.putInt("storedInt", 100); // value to store
editor.commit();
工程2:
- ContextmOtherContex;
-
intstoredPreference;
-
try{
- mOtherContex=this.createPackageContext("com.android.testsharepreference",Context.CONTEXT_IGNORE_SECURITY);
- SharedPreferencespreferences=mOtherContex.getSharedPreferences(SharePreference_name,MODE_WORLD_READABLE);
- storedPreference=preferences.getInt("storedInt",0);
-
- }catch(NameNotFoundExceptione){
- e.printStackTrace();
- storedPreference=200;
- }
Context mOtherContex;
int storedPreference;
try {
mOtherContex = this.createPackageContext("com.android.testsharepreference", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences preferences = mOtherContex.getSharedPreferences(SharePreference_name,MODE_WORLD_READABLE);
storedPreference = preferences.getInt("storedInt", 0);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
storedPreference=200;
}
解说:工程1创建getSharedPreferences(SharePreference_name, Context.MODE_WORLD_READABLE);第二个参数就可以决定你的SharePreference要不要共享,有三种模式:MODE_PRIVATE ,MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE;工程2 getSharedPreferences是通过工程1的Context来获得工程1的SharedPreference的实例。
分享到:
相关推荐
使用SharedPreferences的小项目。
Android数据存储——SharedPreferences实现登入记住密码功能。
Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储),如项目包有问题请联系我谢谢
Jetpack DataStore 是一种改进的新数据存储解决方案,允许使用协议缓冲区存储键值对或类型化对 象。 DataStore 以异步、一致的事务方式存储数据,克服了 SharedPreferences(以下统称为SP)的 一些缺点。 DataStore ...
Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...
前面呢,我们讲了文件的存储,文件的存储方式不适合保存一些比较复杂的文本数据。因此,我们来学习一下...SharedPreferences支持不同类型的数据存储,如果你存储的是整型,那你读取出来的也是整型,你存储的是浮点型,
Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据...
程序代码 博文链接:https://prettyboy434.iteye.com/blog/724088
Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/<package> /shared_prefs 文件夹下,以XML格式保存,根元素为:。文件名称为获取SharedPreferences实例时传递的參数值。...
NULL 博文链接:https://zhujianjia.iteye.com/blog/1042048
嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 2 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...
Android Studio编写的Android存储示例。其中包括:使用自带的SharedPreferences存取;存储数据到内存;存储数据到SD卡;存储数据到SQLite数据库。
利用数据存储的SharedPreferences开发技术,实现了一个简易的登录界面,可以记住登录密码等。
Android使用SharedPreferences进行数据存储,缓存ID等数据
1.掌握SharedPreferences的使用方法; 2.掌握各种文件存储的区别与适用情况; 3.了解SQLite数据库的特点和体系结构; 4.掌握SQLite数据库的建立和操作方法; 5.理解ContentProvider的用途和原理; 6.掌握...
利用数据存储的SharedPreferences开发技术,实现了一个简易的注册名片功能,可以实现名片的保存和读取等。
android 使用SharedPreferences对数据存储/删除/读取/文件删除
申明人(签名): 实验报告评语与评分: 评阅老师签名: 一、实验名称:Android数据存储与IO 二、实验日期:2014/11/13 三、实验目的: 1、掌握SharedPreferences的存储数据的格式及位置,能够读写其他应用程序的...
Android使用SharedPreferences和SQLite数据库实现数据存储