app/src/main/java/net/nashlegend/sourcewall/request/cache/RequestCache.java

(开头部分) 16KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package net.nashlegend.sourcewall.request.cache;

import android.annotation.TargetApi;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.support.annotation.Nullable;
import android.support.v4.util.LruCache;

import net.nashlegend.sourcewall.App;
import net.nashlegend.sourcewall.util.ErrorUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class RequestCache {

    private static final int DEFAULT_MEM_CACHE_SIZE = 1024 * 5; // 5MB

    private static final int DEFAULT_DISK_CACHE_SIZE = 1024 * 1024 * 50; // 50MB

    private static final int DISK_CACHE_INDEX = 0;

    private static final boolean DEFAULT_MEM_CACHE_ENABLED = true;
    private static final boolean DEFAULT_DISK_CACHE_ENABLED = true;
    private static final boolean DEFAULT_INIT_DISK_CACHE_ON_CREATE = false;

    private DiskLruCache mDiskLruCache;
    private LruCache<String, String> mMemoryCache;
    private RequestCacheParams mCacheParams;
    private final Object mDiskCacheLock = new Object();
    private boolean mDiskCacheStarting = true;
    private static RequestCache requestCache;

    private RequestCache(RequestCacheParams cacheParams) {
        init(cacheParams);
    }

    synchronized public static RequestCache getInstance() {
        if (requestCache == null) {
            requestCache = new RequestCache(new RequestCacheParams(App.getApp(), "request.cache"));
            requestCache.initDiskCache();
        }
        return requestCache;
    }

    private void init(RequestCacheParams cacheParams) {
        mCacheParams = cacheParams;
        if (mCacheParams.memoryCacheEnabled) {
            mMemoryCache = new LruCache<String, String>(mCacheParams.memCacheSize) {
                /**
                 * 以k计算cache
                 */
                @Override
后面还有 419 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。