安卓系统,基本都可以在设置中清除数据,其中有两个选项,一个是清除全部数据,一个是清除缓存。全部数据包括用户数据,是属于彻底的清除,操作后需要重新授予应用权限。而清除缓存则不需要,只是清空了缓存的数据。
然而,并不是所有的安卓系统都提供了清除数据的功能,如果没有提供,想要清除数据,则只能采用卸载重装的方法。如果是我们自己写的应用,完全可以在应用中内置清除数据的功能。
以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();
}

发表评论