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端不同的需求,因为缓存机智不同 可以理解!
备份过程就像一个黑盒子......你不知道什么时候开始,以及检查之间的时间......所以最好不要禁用它!
与君共勉
我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
下一篇: 前端性能优化:HTTP缓存篇
推荐阅读
-
SharedPreferences如何清除缓存?
-
清除flash player缓存-SharedObject 博客分类: Flex 清除flash player缓存SharedObject
-
无法清除缓存 博客分类: javascript
-
html禁止清除input文本输入缓存 博客分类: html html浏览器
-
html禁止清除input文本输入缓存 博客分类: html html浏览器
-
清除Tomcat页面缓存的方法 博客分类: jsp tomcat清除页面缓存不改变
-
清除Tomcat页面缓存的方法 博客分类: 开发总结jsphtml tomcat页面缓存清除
-
如何清除SVN密码,以及重置eclipse中svn插件密码? 博客分类: 开发环境 eclipsesubversionsvn
-
如何清除SVN密码,以及重置eclipse中svn插件密码? 博客分类: 开发环境 eclipsesubversionsvn
-
Yii 2.0如何使用页面缓存方法示例