android缓存清理代码,安卓缓存清除和计算
官⽅提供的⽅法中,计算缓存和清除缓存 貌似对安卓系统没有效果,以下是采⽤原⽣安卓提供的⽅法,供有需要的同学参考,⾃⼰只有⼀台魅族⼿机,不知在其他机型上是否通⽤。
以下是代码:
var Intent = null,
File = null,
Uri = null,
main = null;
var cacheCaleState=false;
var os=null;
mui.plusReady(function() {
os=plus.os.name;
if(os == "Android") {
main = plus.android.runtimeMainActivity();
Intent = plus.android.importClass("t.Intent");
File = plus.android.importClass("java.io.File");
Uri = plus.android.importClass("android.Uri");
}
initCacheSize();
cacheDom.addEventListener('tap', function() {
firm("确定清除缓存? 清除后App中的数据将会被清理,⽤户需重新登录", function(e) {
if(e.index == 0) {
console.log("cacheCaleState:"+cacheCaleState);
if(os=="Android"){
if(cacheCaleState==true){
clearAllCache();
}else{
}
}else if(os=="iOS"){
clearCache(function(){
//再次计算缓存⼤⼩
initCacheSize();
});
}, "新消息通知", ["确定", "取消"]);
}, false);
});
以下是⽅法体 计算缓存⼤⼩
function initCacheSize (){
var formatedSize;
if(os=="Android"){
formatedSize=formatSize(calcCache4Android()); cacheCaleState=true;
cacheDomChild.innerHTML="清除缓存" + formatedSize + ""; }else if(os=="iOS"){
calcCache(function(size) {
cacheCaleState=true;
formatedSize=formatSize(size);
cacheDomChild.innerHTML="清除缓存" + formatedSize + ""; });
}else{
cacheCaleState=false;
}
}
/**
* 计算缓存⼤⼩ 官⽅提供⽅法,⽤于iOS
*/
function calcCache(callback) {
console.log("开始计算缓存⼤⼩");
var finalSize = -1;
plus.cache.calculate(function(size) {
console.log(size + "byte");
var sizeInt = parseInt(size);
console.log("sizeInt" + sizeInt);
return callback(finalSize);
function calcCache4Android() {
var cacheSize=0;
console.log("start calc android");
var sdRoot = CacheDir();
var files = plus.android.invoke(sdRoot,"listFiles"); cacheSize += getFolderSize(files);
console.log("android size-->"+cacheSize);
return cacheSize;
}
function getFolderSize(files) {
var size = 0;
var len = files.length;
for(var i = 0; i < len; i++) {
// 如果下⾯还有⽂件
if(files[i].isDirectory()) {
size = size + getFolderSize(files[i]);
} else if(!files[i].isHidden()){
size = size + files[i].length();
}
}
return size;
}
function formatSize(size){
var fileSizeString;
size=parseInt(size);
console.log("我是size"+size);
if(size == 0){
fileSizeString = "0B";
}else if(size < 1024){
fileSizeString = size + "B";
}else if(size < 1048576){
fileSizeString = (size/1024).toFixed(2) + "KB";
}else if (size < 1073741824){
console.log("Mb"+size);
fileSizeString = (size/1048576).toFixed(2) + "MB"; console.log("/ after"+fileSizeString);
}else{
fileSizeString = (size/1073741824).toFixed(2) + "GB"; }
return fileSizeString;
}
以下是删除缓存的⽅法
/**
* 清除缓存
*/
function clearCache(callback) {
plus.storage.clear();
plus.cache.clear(function() {
console.log("清除了~~~return");
return callback();
});
}
function clearAllCache4Android(){
console.log("清理所有缓存");
console.log("main"+CacheDir());
var sdRoot = CacheDir();
var files = plus.android.invoke(sdRoot,"listFiles"); deleteDir(files);
//再次计算缓存⼤⼩
initCacheSize();
}
function deleteDir(files){
var len = files.length;
原生安卓app开发console.log("len:"+len);
for(var i = 0; i < len; i++) {
console.log("delete file dir:"+files[i]);
files[i].delete();
}
}
⽅法名⽐较直观,就没有⼀⼀注释了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论