SharedPreferences如何清除缓存?

前言

因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端不同的需求,因为缓存机智不同 可以理解!

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

与君共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
这里写图片描述

猜你喜欢

转载自blog.csdn.net/Life_s/article/details/81505713