安卓系统,基本都可以在设置中清除数据,其中有两个选项,一个是清除全部数据,一个是清除缓存。全部数据包括用户数据,是属于彻底的清除,操作后需要重新授予应用权限。而清除缓存则不需要,只是清空了缓存的数据。
然而,并不是所有的安卓系统都提供了清除数据的功能,如果没有提供,想要清除数据,则只能采用卸载重装的方法。如果是我们自己写的应用,完全可以在应用中内置清除数据的功能。
以uniapp应用为例
清除缓存功能
function clearAppCacheData() { let main = plus.android.runtimeMainActivity(); let sdRoot1 = main.getCacheDir(); let filesOne = plus.android.invoke(sdRoot1, "listFiles"); let lenOne = filesOne.length; for (let i = 0; i < lenOne; i++) { let filePath = '' + filesOne[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径 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: 1000 }); } if (callback) { setTimeout(() => { uni.hideToast() callback() }, 500) } })
清除全部数据
function clearAppUserData() { plus.android.importClass("android.app.ActivityManager"); var Context = plus.android.importClass("android.content.Context"); var am = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData(); }
发表评论