安卓系统,基本都可以在设置中清除数据,其中有两个选项,一个是清除全部数据,一个是清除缓存。全部数据包括用户数据,是属于彻底的清除,操作后需要重新授予应用权限。而清除缓存则不需要,只是清空了缓存的数据。
然而,并不是所有的安卓系统都提供了清除数据的功能,如果没有提供,想要清除数据,则只能采用卸载重装的方法。如果是我们自己写的应用,完全可以在应用中内置清除数据的功能。
以uniapp应用为例
清除缓存功能
functionclearAppCacheData(){ letmain=plus.android.runtimeMainActivity(); letsdRoot1=main.getCacheDir(); letfilesOne=plus.android.invoke(sdRoot1,"listFiles"); letlenOne=filesOne.length; for(leti=0;ilenOne;i++){ letfilePath=+filesOne;//没有找到合适的方法获取路径,这样写可以转成文件路径 plus.io.resolveLocalFileSystemURL(filePath,function(entry){ if(entry.isDirectory){ entry.removeRecursively(function(entry){//递归删除其下的所有文件及子目录 console.log(清理文件数据完成) },function(e){ console.log(e.message) }); }else{ entry.remove(function(entry){//递归删除其下的所有文件及子目录 console.log(清理文件数据完成) },function(e){ console.log(e.message) }); } },function(e){ console.log(清理文件数据失败) }); };}plus.cache.clear(()={ uni.clearStorage() clearAppCacheData() if(showMessage){ uni.showToast({ title:清除缓存成功, duration: }); } if(callback){ setTimeout(()={ uni.hideToast() callback() },) }})
清除全部数据
functionclearAppUserData(){ plus.android.importClass("android.app.ActivityManager"); varContext=plus.android.importClass("android.content.Context"); varam=plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData();}