android SharedPreferances 纠正

本文澄清了关于Android中SharedPreferances的一些误解,实测显示即使在不同包的Activity间及不同应用中也可读取其数据。此外,还介绍了SharedPreferances的不同模式及其本质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上的文章不要全信哦,也不要乱写,误人子弟

 

1.我看网上很多文章说SharedPreferances中存储的数据在不同包的Activity中无法读取。他指的是Context.MODE_PRIVATE这种模式下。

但是我测试了一下,在不同包的Activity中是可以读取SharedPreferances中的数据的。(Context.MODE_PRIVATE模式下 )

而且在官方的API文章中明确指出

 

Context类

public static final int MODE_PRIVATE

File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).

See Also
  • MODE_WORLD_READABLE
  • MODE_WORLD_WRITEABLE
Constant Value: 0 (0x00000000)

2.不仅在不同包的Activity中可以读取SharedPreferances中的数据。不同应用也可以读取SharedPreferances中的数据

public static final int MODE_WORLD_READABLE

File creation mode: allow all other applications to have read access to the created file.

See Also
  • MODE_PRIVATE
  • MODE_WORLD_WRITEABLE
Constant Value: 1 (0x00000001)

public static final int MODE_WORLD_WRITEABLE

File creation mode: allow all other applications to have write access to the created file.

See Also
  • MODE_PRIVATE
  • MODE_WORLD_READABLE
Constant Value: 2 (0x00000002)


3.最后,SharedPreferances的本质就是xml文档,放在/data/data/<package name>/shares_prefs这个文件夹下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值