今天在Android遇到一个需求,不允许用户完全清除应用私有目录(/data/data/包名/),但是Android默认情况下用户通过在应用信息里面点击清除数据按钮把所有的应用私有目录下的的数据文件完全清除,其中包含SharedPreference,缓存文件,数据库等等重要数据。
如果我们不想用户这样做,就需要用到android:manageSpaceActivity属性,这个属性是AndroidManifest.xml中的application标签的一个属性,意思是用于指定一个Activity来管理数据
,加上这个属性,指定SettingActivity为管理空间的Activity
- <application
- android:manageSpaceActivity=".activity.SettingActivity" >
- </application>
我们再看看Android的应用信息界面
这时候清除数据按钮变成管理空间了,点击之后,就启动指定的Activity,我只允许删除缓存文件和清除数据库中的收藏表