• 基于LRU Cache的简单缓存


    package com.test.testCache;
    
    import java.util.Map;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.text.TextUtils;
    import android.util.LruCache;
    
    public class TestStore
    {
        private final static int CACHE_SIZE = 1000;
        private LruCache<String, String> mContent;
    
        public TestStore(Context context)
        {
            this(context, CACHE_SIZE);
        }
    
        public TestStore(Context context, int size)
        {
            super();
            mContent = new LruCache<String, String>(size);
            JSONArray arry = getTopicReadData(context);
            if (arry == null) {
                return;
            }
            for (int i = 0; i < arry.length(); i++) {
                String content = null;
                try {
                    content = arry.getString(i);
                } catch (JSONException e) {
                }
                if (TextUtils.isEmpty(content)) {
                    continue;
                }
                putReadData(content);
            }
        }
    
        public boolean isExsit(String key) {
            String value = mContent.get(key);
            return !TextUtils.isEmpty(value);
        }
    
        public void putReadData(String key) {
            mContent.put(key, key);
        }
    
        public void saveDataToFile(Context context) {
            JSONArray json = new JSONArray();
            Map<String, String> map = mContent.snapshot();
            for (String id : map.values()) {
                json.put(id);
            }
            saveTopicReadData(context, json);
        }
    
        public JSONArray getTopicReadData(Context context) {
            SharedPreferences preferences = getSharedPreferences(context);
            String content = preferences.getString(STORE_KEY_TOPIC_READDATA, null);
            JSONArray array = null;
            try {
                array = new JSONArray(content);
            } catch (Exception e) {
            }
            return array;
        }
    
        private void saveTopicReadData(Context context, JSONArray array) {
            Editor edit = getSharedPreferencesEditor(context);
            edit.putString(STORE_KEY_TOPIC_READDATA, array.toString());
            edit.commit();
        }
    
        // =======================================
        private final static String STORE_NAME = "1111";
        private final static String STORE_KEY_TOPIC_READDATA = "22222";
    
        private SharedPreferences getSharedPreferences(Context context) {
            return context.getSharedPreferences(STORE_NAME, 0);
        }
    
        private Editor getSharedPreferencesEditor(Context context) {
            return getSharedPreferences(context).edit();
        }
    }
  • 相关阅读:
    C# winform开发:Graphics、pictureBox同时画多个矩形
    C# “配置系统未能初始化” 异常解决
    Google Maps API V3 之 路线服务
    Google Maps API V3 之 图层
    Google Maps API V3 之绘图库 信息窗口
    Google 地图 API V3 之 叠加层
    驱动开发之libusb函数
    libusb的使用教程和例子
    libusb检测U盘插入
    使用libusb检测USB设备插拔状态
  • 原文地址:https://www.cnblogs.com/lchd/p/4218593.html
Copyright © 2020-2023  润新知