android:manageSpaceActivity让应用手动管理应用的数据目录

今天在Android遇到一个需求,不允许用户完全清除应用私有目录(/data/data/包名/),但是Android默认情况下用户通过在应用信息里面点击清除数据按钮把所有的应用私有目录下的的数据文件完全清除,其中包含SharedPreference,缓存文件,数据库等等重要数据。

如果我们不想用户这样做,就需要用到android:manageSpaceActivity属性,这个属性是AndroidManifest.xml中的application标签的一个属性,意思是用于指定一个Activity来管理数据

,加上这个属性,指定SettingActivity为管理空间的Activity

<application
        android:manageSpaceActivity=".activity.SettingActivity" >
</application>

我们再看看Android的应用信息界面

这时候清除数据按钮编程管理空间了,点击之后,就启动指定的Activity,我只允许删除缓存文件和清除数据库中的收藏表


时间: 2024-10-01 19:36:26

android:manageSpaceActivity让应用手动管理应用的数据目录的相关文章

【移动开发】android:manageSpaceActivity让应用手动管理应用的数据目录

今天在Android遇到一个需求,不允许用户完全清除应用私有目录(/data/data/包名/),但是Android默认情况下用户通过在应用信息里面点击清除数据按钮把所有的应用私有目录下的的数据文件完全清除,其中包含SharedPreference,缓存文件,数据库等等重要数据.  如果我们不想用户这样做,就需要用到android:manageSpaceActivity属性,这个属性是AndroidManifest.xml中的application标签的一个属性,意思是用于指定一个Activit

Android 6.0 - 动态权限管理的解决方案(转)

转自:http://www.cnblogs.com/dubo-/p/6018262.html Android 6.0 - 动态权限管理的解决方案 转载请标注 Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应用权限. 时代总是不断发展, 程序总是以人为本, 让我们为应用添加动态权限管理吧! 这里提供了一个非常不错的解决方案, 提供源码, 项目可以直

Gradle for Android 第三篇( 依赖管理 )

依赖管理 这会是一个系列,所以如果你还没有看我之前的几篇文章,请先查看以下文章: Gradle for Android 第一篇( 从 Gradle 和 AS 开始 ) Gradle for Android 第二篇( Build.gradle入门 ) Gradle for Android 第四篇( 构建变体 ) Gradle for Android 第五篇( 多模块构建 ) Gradle for Android 第六篇( 测试) Gradle for Android 第七篇( Groovy入门 )

Android 仿今日头条频道管理(下)(GridView之间Item的移动和拖拽)

前言 上篇博客我们说到了今日头条频道管理的操作交互体验,我也介绍了2个GridView之间Item的相互移动.详情请參考:Android 仿今日头条频道管理(上)(GridView之间Item的移动和拖拽) 今天把相对照较复杂的gridView的拖拽也记录下.在開始之前我们事先要了解下Android的事件分发机制.网上这方面的资料也比較多.由于自己定义控件大部分要用到事件分发机制的知识. 实现思路 要实现Item的拖拽.事实上并非真正要去拖拽GridView的Item.而是使用WindowMan

Android—— 4.2 Vold挂载管理_Kernel_USB_Uevent (七)

在前文Android-- 4.2 Vold挂载管理_NetlinkManager (四)中有解析到Vold 是从kernel中获取uevent事件,来获取device信息,其中是通过一个Netlink的套接字,目前整个Vold机制也分析完了, 上篇 Android-- 4.2 Vold挂载管理_MountService (六) 分析了机制中最上层的,这里分析一下最下层的kernel uevent事件的发送,以USB设备为例! 撰写不易,转载请注明出处:http://blog.csdn.net/j

Android—— 4.2 Vold挂载管理_NetlinkManager (四)

在前文Android-- 4.2 Vold挂载管理_主体构建main (一)中有结构图表示,Vold是kernel与用户层的一个交互管理模块, Android-- 4.2 Vold挂载管理_VolumeManager (三)简单介绍了核心VolumeManager的构建,这篇分析从kernel进程沟通到VolumeManager进程的关键:NetlinkManager 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/3858602

OC中手动管理内存

//1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器,是系统用来判断是否回收对象的唯一依据,当我们的引用计数retainCount = 0的时候,系统会毫不犹豫回收当前对象 //2.[对象 release]  reatinCount - 1 //3.[对象 retain]   reatinCount + 1 ,返回self //4.我们的引用计数retainCount = 0的 对象就被销毁了 //5.dealloc函数,当一个对象要被销毁的时候,系统会自动调用dealloc函

内存管理一道数组存储例题存储精讲! (oc手动管理内存,引用计数器)

//定义一个bigArr数组, NSMutableArray *bigArr = [[NSMutableArray alloc] init]; //引用计数0 - 1 //此时只是定义了一个smallArr 并没有开辟空间,所以引用计数不加一 NSMutableArray *smallArr = nil; for (int i = 0 ; i < 13 ; i++ ) { if (i % 3 == 0 ) { // 0 3 6 9 12 //此时为smallArr数组开辟了空间, smallAr

Android—— 4.2 Vold挂载管理_MountService (六)

整个Vold机制应该算system层,与framwork层的交互在Android-- 4.2 Vold挂载管理_CommandListener (二)中有提到过,是通过一个"vold"的socket进行通信的,这里分析一下framework中负责与Vold通信的:MountService 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/38978387 一.MountService启动: 在/frameworks/bas