您的位置:首页 > Web前端

关于如何禁止删除SharedPreference的一个尝试

2016-08-15 15:09 169 查看
苹果和安卓都有一套缓存变量的机制,但是苹果的userDefault不会被那么容易清理掉,相反安卓的内存清理机制导致了保存在SharedPreference的一些变量经常被删除掉。

正好赶上项目有个需求是需要SharedPreference不能被APP的使用者那么容易的清除掉。于是看了些文章。最后把答案所在了android:manageSpaceActivity 这个标签属性上。

这个属性是在application时候定义的,这个属性指定了一个用于清除数据的Activity,这样一来开发者可以向用户指定开放那些数据用于清除,否则,默认情况是全部都会清除的。原文:
The fully qualified name of an Activity subclass that the system can launch to let users manage the memory occupied by the application on the device. The activity should also be declared with an element.

大概说一下,android:manageSpaceActivity 是AndroidManifest.xml中的application标签的一个属性,用于指定一个Activity来管理数据,也就是指定让某个Activity变成为管理空间的Activity。例如我项目中就假如了

android:manageSpaceActivity=".ManageSpaceActivity" 这个属性。就是指定一个叫ManageSpaceActivity"的Activity来管理我这个APP内的数据空间。而在这个Activity中其实我什么也没写。就是做任何事情。也就不会清除当前APP的数据空间。我的SharedPreference 就可以不被用户在后台点清理掉数据了。当然用别的方法还是可以清理掉的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: