实现数据保存、SharedPreferences、Context的整理资料

一、getSharedPreferences()和getPreferences()方法

Context类中的getSharedPreferences ( ) 方法 
        此方法有2个参数,getSharedPreferences(name,mode):第一个参数(name)用于指定 SharedPreferences 文件的名称,若指定的文件不存在则创建一个;第二个参数(mode)用于指定操作模式,默认操作模式为MODE_PRIVATE,Android 6.0以上只有这一种模式可选。

Activity类中的getPreferences ( ) 方法
       这个方法和Context中的方法类似,但它只需要一个参数,即getPreferences (mode) 。因为使用这个方法会自动将当前活动的类名作为 SharedPreferences 的文件名。

对于多个Activity之间使用SharedPreferences传值,建议getSharedPreferences(name,mode)指定同一个的name。
————————————————
原文链接:https://blog.csdn.net/qq_33852648/article/details/99820852

二、

应用程序App共有的Context数目公式为:

总Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例)

三、Android中实现存储数据的方法:

(1)SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态。

(2)内部文件存储设备。文件可以存储大量图片,文件,视频等。默认位置:/data/data/包名/****.

(3)外部文件存储设备。将文件存储在sdcard中。

(4)SQL数据库存储数据。位置:/data/<项目文件>/database/***.可以Content Provider和service获取数据库

(5)网络存储数据。

2.SharedPreferences保存数据

(1)根据Activity.getSharedPreferences获取SharedPreferences对象。

(2)SharedPreferences.Editor对象获取Editor对象。

(3)SharedPreferences.Editor.putXXX添加数据。

(4)SharedPreferences.Editor.commit提交数据。

(5)代码实现:


<span style="font-size:18px;">SharedPreferences mySharedPreferences= getSharedPreferences("demo",
Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = mySharedPreferences.edit(); 
//用putString的方法保存数据 
editor.putString("name", "sss"); 
editor.putString("age", "11"); 
//提交当前数据 
editor.commit();</span>


3.SharedPreferences读取数据


<span style="font-size:18px;">//同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象 
SharedPreferencessharedPreferences= getSharedPreferences("demo", 
Activity.MODE_PRIVATE); 
// 使用getString方法获得value,注意第2个参数是value的默认值 
String name =sharedPreferences.getString("name", ""); 
String age =sharedPreferences.getString("age", "");</span>

4.使用场景
多个activity 之间的数据传递除了可以他通过intent来传递,还可以使用SharedPreferences来共享数据的方式
————————————————
版权声明:本文为CSDN博主「数字改变世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woyaochenggong774/article/details/49735223

四、在Activity和Service中SharedPreferences的区别

在Activity中有关SharedPreferences的代码如下:

<span style="font-family:Arial;font-size:18px;">SharedPreferences  settings= getApplicationContext().getSharedPreferences("useriD", Context.MODE_PRIVATE);
SharedPreferences.Editor  editor = settings.edit();
editor.putString("useriD", userID);//这里的userId是动态获取的。
editor.commit();</span>


在service中SharedPreferences的代码是这样的:

<span style="font-family:Arial;font-size:18px;">String ip;
SharedPreferences myip ;
myip = getApplicationContext().getSharedPreferences("useriD", Context.MODE_PRIVATE);
ip = myip.getString("useriD", null);</span>

改正方案:

把Context.MODE_PRIVATE改成了Context.MODE_MULTI_PROCESS就可以了。也就是说Context.MODE_PRIVATE不支持Activity和Service之间数据同步。

————————————————
版权声明:本文为CSDN博主「彼岸花开洒落一地温热」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010272905/article/details/51754436

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值