如何获取和清除app的缓存呢

来源:21-1 实战仿写小红书App-搭建首页框架

Krane

2024-06-24

网上搜了用安卓的原生写法,react-native通过navtiveModules的方式来获取,但是那个方法报long的错误,好像不对,用不了
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Promise;

public class CacheManagerModule extends ReactContextBaseJavaModule {

CacheManagerModule(ReactApplicationContext context) {
    super(context);
}

@Override
public String getName() {
    return "CacheManager";
}

@ReactMethod
public void getAppCacheSize(Promise promise) {
    long size = getFolderSize(context.getCacheDir());
    promise.resolve(size);
}

private long getFolderSize(File file) {
    long size = 0;
    try {
        File[] fileList = file.listFiles();
        for (File aFileList : fileList) {
            if (aFileList.isDirectory()) {
                size = size + getFolderSize(aFileList);
            } else {
                size = size + aFileList.length();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return size;
}

}

能给个安卓和IOS 获取缓存和清除缓存的正确写法么

或者说 APP的缓存,就是Storage那些么?

写回答

1回答

FE大公爵

2024-06-25

我们的应用使用的缓存库是async-storage,原生层已经帮我们实现好了,清除缓存直接用这个库的api就行。
0
2
FE大公爵
回复
Krane
所有的缓存,最终都是保存在应用目录下的,所以可以直接清除对应目录文件,比如安卓,直接清除应用目录下/cache/下的文件。另外我们一般清除的都是数据库,或者localstorage数据,一般不用清除图片缓存。
2024-06-27
共2条回复

RN从0到1系统精讲与小红书APP实战

30+小案例+2个实战项目,快人一步提升个职业竞争力

295 学习 · 211 问题

查看课程