小白笔记之使用LRUCache的简单例子

2019-05-07  本文已影响0人  问荆_

一、简单介绍 LRUCache

二、简单介绍LRUCache的使用

int maxMemory = (int) (Runtime.getRuntime().totalMemory()/1024);
       //设置缓存当前进程可用容量的1/8
        int cacheSize = maxMemory/8;
//这里的是Integer类型,保存的数据是String类型,键和值不允许为null
private LruCache<Integer,String> mData;
mData = new  LruCache<Integer,String>(cacheSize);
        mData.put(1,"程序员");
        mData.put(2,"写代码");
        mData.put(3,"吃饭");
        mData.put(4,"睡觉");

这里存储了4条数据。

  
        String data1 = mData.get(1);
        String data2 =  mData.get(2);
        String data3 =  mData.get(3);
        String data4 =  mData.get(4);
        String data5 =  mData.get(5);

这样就读取出了我们之前存储的数据。

注意事项

LruCache<String,Bitmap>mMemoryCache;
//这里最大缓存的单位是kb
int maxMemory = (int) (Runtime.getRuntime().totalMemory()/1024);
        int cacheSize = maxMemory/8;
mMemoryCache = new LruCache<String,Bitmap>(cacheSize){
            @Override
            protected int sizeOf(String key, Bitmap value) {
                return value.getByteCount()/1024;
            }
        };

这里我们写一个小demo来实现存储数据,读取数据,展示数据

public class LRUCacheActivity extends AppCompatActivity {
    //定义LruCache
    private LruCache<Integer,String>mData;
    private TextView show;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lrucache);
        //展示数据的TextView
        show = (TextView)findViewById(R.id.LruText);
        //存储和得到数据的Button
        Button save = (Button)findViewById(R.id.LRUSaveData);
        Button get =(Button)findViewById(R.id.getLRUData);
        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                saveData();
            }
        });
        get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showData(getData());
            }
        });
    }

    public void saveData(){
        //设置LruCache的最大缓存
        int maxMemory = (int)(Runtime.getRuntime().totalMemory()/1024);
        int cacheSize = maxMemory/8;
        //LruCache的初始化
       mData = new  LruCache<Integer,String>(cacheSize);
       //添加数据
        mData.put(1,"程序员");
        mData.put(2,"写代码");
        mData.put(3,"吃饭");
        mData.put(4,"睡觉");
    }

    public String getData(){
        String data = "";
        //获取数据
        for(int i = 1;i<6;i++){
             data += mData.get(i) + "\n";
        }
       return  data;
    }

    public void showData(String data){
        //展示数据
        show.setText(data);
    }
}

这里有两个Button,一个用于存储数据,一个用于展示读取的数据,还有一个TextView用于展示数据。
我们来看看效果:


image.png

这样我们就展示出了数据

上一篇 下一篇

猜你喜欢

热点阅读