Android清除應用緩存的兩種方法
第一種
使用ActivityManager中的clearApplicationUserData方法,代碼如下:
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData();
這種方式的問題就是不知清除cache,連帶應用的data也刪除了。如下圖所示:
第二種
使用PackageManager中的deleteApplicationCacheFiles方法,這個API是隱藏的,所以需要用反射來調用,代碼如下:
PackageManager packageManager = context.getPackageManager(); Method method; try { method = PackageManager.class.getDeclaredMethod("deleteApplicationCacheFiles", String.class, IPackageDataObserver.class); method.invoke(packageManager, packageName, new ClearUserDataObserver()); } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } static class ClearUserDataObserver extends IPackageDataObserver.Stub { public void onRemoveCompleted(final String packageName, final boolean succeeded) { Log.i(TAG, "IPackageDataObserver succeeded: " + succeeded); } }
這種方式只會清除cache,有需要只清除緩存,可以是用這種方式。IPackageDataObserver需要自己放到項目的aidi文件夾中,如下圖所示:
兩種方式都需要有系統(tǒng)權限,聲明為系統(tǒng)應用并且簽系統(tǒng)簽名才能調用成功。
以上就是Android清除應用緩存的兩種方法的詳細內容,更多關于Android清除應用緩存的資料請關注腳本之家其它相關文章!
相關文章
Android ListView自定義Adapter實現(xiàn)仿QQ界面
這篇文章主要為大家詳細介紹了ListView自定義Adapter實現(xiàn)仿QQ界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Android編程布局(Layout)之AbsoluteLayout用法實例分析
這篇文章主要介紹了Android編程布局(Layout)之AbsoluteLayout用法,結合實例形式簡單分析了Android絕對布局AbsoluteLayout的實現(xiàn)方法,需要的朋友可以參考下2015-12-12Android 開發(fā)之dataBinding與ListView及事件
這篇文章主要介紹了Android 開發(fā)之dataBinding與ListView及事件的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10Android面向切面基于AOP實現(xiàn)登錄攔截的場景示例
這篇文章主要為大家介紹了Android面向切面基于AOP實現(xiàn)登錄攔截的場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08Android LayoutInflater.inflate()詳解及分析
這篇文章主要介紹了Android LayoutInflater.inflate()詳解及分析的相關資料,需要的朋友可以參考下2017-01-01