app/src/main/java/me/zhanghai/android/douya/util/DiskCacheHelper.java

(开头部分) 5KB

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

/*
 * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.util;

import android.content.Context;
import android.os.Handler;

import com.google.gson.reflect.TypeToken;

import java.io.File;
import java.lang.reflect.Type;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.RejectedExecutionException;

import me.zhanghai.android.douya.BuildConfig;

public class DiskCacheHelper {

    // 2M
    private static final int MAX_DISK_CACHE_BYTES = 2 * 1024 * 1024;

    private static final Object DISK_CACHE_LOCK = new Object();
    private static volatile DiskCache sDiskCache;

    private static final ExecutorService sExecutorService = Executors.newSingleThreadExecutor();

    private DiskCacheHelper() {}

    public static DiskCache get(Context context) {
        if (sDiskCache == null) {
            synchronized (DISK_CACHE_LOCK) {
                if (sDiskCache == null) {
                    sDiskCache = DiskCache.open(new File(context.getCacheDir(),
                            BuildConfig.APPLICATION_ID), 0, MAX_DISK_CACHE_BYTES);
                }
            }
        }
        return sDiskCache;
    }

    private static void executeAsync(Runnable runnable) {
        try {
            sExecutorService.execute(runnable);
        } catch (RejectedExecutionException e) {
            e.printStackTrace();
        }
    }

    private static <T> void deliverValue(Handler handler, final Callback<T> callback,
                                         final T value) {
        handler.post(new Runnable() {
            @Override
            public void run() {
                callback.onValue(value);
            }
        });
后面还有 121 行代码,解锁后查看完整代码

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

AI 解读

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

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