请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

网上搜了用安卓的原生写法,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那些么?

正在回答 回答被采纳积分+3

1回答

FE大公爵 2024-06-25 20:25:32
我们的应用使用的缓存库是async-storage,原生层已经帮我们实现好了,清除缓存直接用这个库的api就行。
0 回复 有任何疑惑可以回复我~
  • 提问者 Krane #1
    那正常像app 会有图片缓存啥的么, 这个缓存库不是只有我们自己存的一些缓存数据么?  那react-native实现的app只有我们存的数据缓存 ,就没有其他app系统应用使用后留下的缓存么?  使用功能不产生其他缓存的? 是这样么,只要考虑清除数据缓存即可?
    回复 有任何疑惑可以回复我~ 2024-06-26 09:29:01
  • FE大公爵 回复 提问者 Krane #2
    所有的缓存,最终都是保存在应用目录下的,所以可以直接清除对应目录文件,比如安卓,直接清除应用目录下/cache/下的文件。另外我们一般清除的都是数据库,或者localstorage数据,一般不用清除图片缓存。
    回复 有任何疑惑可以回复我~ 2024-06-27 09:53:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信