最近有一个需求,需要在最近任务页面的一键清除任务按钮中添加一键清除页面缓存的功能,网上找了一圈,看不到什么便捷的版本,基本上是遍历xxx/cache然后删除,其实是没有这个必要的。

模仿:想一想,哪里有相似功能?原生系统设置的应用信息里。

代码位置:packages\apps\Settings\src\com\android\settings\applications

类名:com.android.settings.applications. AppStorageSettings

看到这个代码时,才发现,原来如此简单。。

那么这就比较好搞定了。简陋写法:import android.content.pm.IPackageDataObserver;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import java.util.List;

import android.os.SystemProperties;

privateClearCacheObserver mClearCacheObserver;

voidclearAllAplicationCache(){

newThread(newRunnable() {

@Override

public voidrun() {

PackageManager packageManager = getPackageManager();

List packageInfos = packageManager.getInstalledPackages(0);

if(packageInfos != null) {

for(inti = 0; i < packageInfos.size(); i++) {

String packName = packageInfos.get(i).packageName;

// Lazy initialization of observerif(mClearCacheObserver==null) {

mClearCacheObserver= newClearCacheObserver();

}

packageManager.deleteApplicationCacheFiles(packName, mClearCacheObserver);

}

}

}

}).start();

}

classClearCacheObserver extendsIPackageDataObserver.Stub {

@Override

public voidonRemoveCompleted(finalString packageName, final booleansucceeded) {

Log.d(TAG, packageName + " onRemoveCacheCompleted: "+ succeeded);

}

}

另外附上,清除默认打开方式的代码:PackageManager packageManager = getPackageManager();

List packageInfos = packageManager.getInstalledPackages(0);

if(packageInfos != null) {

for(inti = 0; i < packageInfos.size(); i++) {

String packName = packageInfos.get(i).packageName;

packageManager.clearPackagePreferredActivities(packName);

try{

IBinder b = ServiceManager.getService(Context.USB_SERVICE);

IUsbManager mUsbManager = IUsbManager.Stub.asInterface(b);

mUsbManager.clearDefaults(packName, UserHandle.myUserId());

} catch(RemoteException e) {

e.printStackTrace();

}

}

}

至于, 怎么在最近任务界面加一键清除按钮,这里就不说了,附上一篇文章:

android 清除所有缓存,Android一键清除所有应用的缓存相关推荐

  1. android+清除循环动画,android自定义View之(4)-一键清除动画

    android自定义View之(四)------一键清除动画 1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解, ...

  2. android自定义View之(四)------一键清除动画

    1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解,做了一个一键清除的动画.当年,我实现这个是用了几张图片,采用F ...

  3. Android缓存处理和清除数据、清除缓存、一键清理的区别

      在Android设备中,我们经常会看到与系统或者应用相关的清除功能有:清除数据.清除缓存.一键清理,这么多清除功能对于一个程序猿就够难理解了,偏偏很多安卓设备上都有这些功能,对于用户来说就更难理解 ...

  4. android 一键清除 清理

    前言   在Android设备中,我们经常会看到与系统或者应用相关的清除功能有:清除数据.清除缓存.一键清理,这么多清除功能对于一个程序猿就够难理解了,偏偏很多安卓设备上都有这些功能,对于用户来说就更 ...

  5. Android记录20-获取缓存大小和清除缓存功能

    Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫  博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓 ...

  6. Android 一键清除其他app的数据

    如何在自己的app里面,一键清除其他应用的数据??? 看了很多网上的教程,80%都说需要将自己的app打包为系统应用,我想说这也太麻烦了吧,那几个aidl文件就得折腾好久,再别说拿到对应手机系统的签名 ...

  7. Android 一键清除其他app的数据(快捷方便)

    如何在自己的app里面,一键清除其他应用的数据??? 看了很多网上的教程,80%都说需要将自己的app打包为系统应用,我想说这也太麻烦了吧,那几个aidl文件就得折腾好久,再别说拿到对应手机系统的签名 ...

  8. android清除缓存 代码,Android应用开发之Android应用清除缓存一般清理目录和代码的教程...

    本文将带你了解Android应用开发Android应用清除缓存一般清理目录和代码的教程,希望本文对大家学Android有所帮助. 一个应用安装完成,会有缓存,缓存一般分为内部存储的和外置的,内存中路径 ...

  9. android 自动清理缓存图片吗,Android中Glide获取缓存大小并清除缓存图片

    清除Glide缓存 Glide自带清除缓存的功能,分别对应Glide.get(context).clearDiskCache();(清除磁盘缓存)与Glide.get(context).clearMe ...

最新文章

  1. NuGet 无法连接到远程服务器-解决方法
  2. NanoPi NEO Air使用五:安装Xfce和xrdp,实现远程访问
  3. python经典好书-推荐几本高质量的Python书籍--附github下载路径
  4. python singleton design pattern super() 多继承
  5. Visual Studio2010重新安装后,冲突问题
  6. QModelIndex——
  7. golang设置title并获取窗口句柄
  8. kotlin界面_Kotlin界面
  9. IIS日志存入数据库之二:ETW
  10. CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】...
  11. google三件套是什么_什么是Google?
  12. 软考每日一练||网络工程师
  13. C语言 case语句 连续值,对一个switch case语句使用两个值
  14. vm虚拟机安装lede旁路由_Vmware虚拟机安装LEDE实现软路由openwrt
  15. 企业路由器和办公室局域网无线路由器设置
  16. 安卓手机如何打开.crx文件_crx文件怎么安装?谷歌浏览器Chrome打开crx文件的方法...
  17. 特殊节日网站全体变成黑灰色
  18. other 猿 多年收藏
  19. Zookeeper 报错 zookeeper Invalid config, exiting abnormally
  20. 趣味算法:国王和100个囚犯

热门文章

  1. 借助 frp 随时随地访问自己的树莓派
  2. python画简笔画病毒_可怕的病毒简笔画要怎么画
  3. 【效率神奇】Github丧心病狂的9个狠招
  4. 用于Android系统的pango + cairo交叉编译
  5. 利用js实现前端简单的加密与解密
  6. 基于知识图谱因果关系生成
  7. 手机批量识别多张图片文字
  8. 沈阳工学院本科有计算机吗,沈阳工学院是几本大学,沈阳工学院是一本还是二本...
  9. mysql数据库下载 织梦本地安装教程_织梦本地环境包安装数据库管理界面phpMyAdmin...
  10. icalendar_家庭日历管理-在Outlook和Web日历之间共享生活以及iCalendar的魔力