Android Config通用類來記錄信息


1.整體分析

1.1.源代碼,可以直接Copy。

public class Config {
    private static int M = 1024 * 1024;
    private volatile static Config mConfig;
    private static LruCache<String, Object> mLruCache = new LruCache<>(1 * M);

    public Config(Context context){}

    public static Config init(Context context) {
        if (null == mConfig) {
            synchronized (Config.class) {
                if (null == mConfig) {
                    mConfig = new Config(context);
                }
            }
        }
        return mConfig;
    }

    public static Config getSingleInstance() {
        return mConfig;
    }

    //--- 基礎 -----------------------------------------------------------------------------------

    public <T extends Serializable> void saveData(@NonNull String key, @NonNull T value) {
        mLruCache.put(key, value);
    }

    public <T extends Serializable> T getData(@NonNull String key, @Nullable T defaultValue) {
        T result = (T) mLruCache.get(key);
        if (result != null) {
            return result;
        }
        return defaultValue;
    }
    //--下面要看情況了,寫一些要記錄的信息
    //--方式如:private static Key_something="something";
    //--類型看情況,這里用string了。參數也看清況,這里用一個Integer吧
    //---------- publlic String saveSomething(Integer position){
    //                      savaData(something,position);
    //              }
    //--然后是獲取了,看情況傳不傳參,getData第二個參數是默認的,看情況
    //-----------public Integer getSomething(){
    //                       return getData(Key_something,0)
    //              }
    
}
View Code

 

1.2.Config類的作用

  就是一個記錄用戶信息的一個類。

  比如某一頁,用戶看到了第幾頁第幾個位置,可以通過這個方式存放到一個系統緩存中。

  比如是否是第一次打開APP,都可以用這個方式存放到系統緩存中

  而且這個類可以隨意修改,看自己需要記錄什么,只要按照例子寫即可。

  這是一個泛型,所以什么數據都支持。


2.局部分析

2.1.看一下定義了哪些成員變量

  

  這里定義了一個M,數據量的大小,因為一般都是用M。1M=1024KB=1024*1024B

  這里用了一個關鍵字volatile

  

  然后LurCache是一個系統緩存類,相當於一個Map。

 

2.2.一個空的構造函數

  

  這個可以為空,也可以和一些第三方提供的緩存類掛鈎。

 

2.3.初始化函數

  

  這里保證Config每次只能有一個實例,同時只能有一個線程執行,實現同步。

 

2.4.返回一個單例

  

  返回一個單例,保證了唯一性。

 

2.5.保存數據和獲取數據,泛型實現。

   

  T 繼承 Serializable,實現序列化,關於序列化可以參考這篇文章。

  序列化的作用如下

  

  什么情況下需要序列化?

  



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM