欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SharedPreferences如何清除缓存?

程序员文章站 2024-03-17 20:00:34
...
前言

因SharedPreferences缓存问题和PM产生分歧

问题如下:
PM要求Android客户端 在客户注册的时候,如果客户是点击好友邀请链接下载的安装包,必须带上邀请码。
为了保证这个邀请码不丢失 我用到了SharedPreferences缓存。

但是在卸载app的时候 问题产生了!!!

根据我和IOS客户端的同事沟通,知道IOS在卸载app的时候是将所有数据都会清空。
但是Android客户端,在卸载app的时候,缓存并没有被清理。于是我翻阅资料所得知:

android6.0(23)以后 SharedPreferences默认会备份作为任务存储应用程序的数据,包括云的首选项通过设置。
想要在卸载app的时候清理到SharedPreferences缓存可以在`AndroidManifest里设置 如下:

<application ...
        android:allowBackup="false">
...
</application>

默认的配置android:allowBackup="true"
意思是支持云备份,当你卸载然后安装较新版本时,会使用恢复的首选项!

设置android:allowBackup="false"可以在卸载app的时候清理到SharedPreferences缓存!

注意:

如果是项目 我不建议这么做,为什么呢?
如果你将android:allowBackup="false"
也就是不要云备份 卸载任何应用程序时,应用程序在内部存储器中所做的所有更改都将被撤消!
这意味着您的SharedPreference文件,其他数据文件,数据库文件,应用程序将被Android操作系统自动删除!

备份过程就像一个黑盒子......你不知道什么时候开始,以及检查之间的时间......所以最好不要禁用它

最后我和PM沟通,说明我的理解和看法,如果清空缓存 可能会出现别的因SharedPreferences缓存产生的问题 !
再说了,既然客户是点了邀请链接注册的 那么即时在点的时候没注册,难道下次再注册就不是邀请进来的吗?

so…?

PM权衡利弊之后,他同意android端和IOS端不同的需求,因为缓存机智不同 可以理解!

备份过程就像一个黑盒子......你不知道什么时候开始,以及检查之间的时间......所以最好不要禁用它!

与君共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
SharedPreferences如何清除缓存?