2016-08-15 38 views
0

我正在使用SharedPreferences來存儲一些String我從服務器獲得。假設每30秒發生一次,但它幾乎總是一樣的String,它每天都會改變一次。 我的問題是什麼將最好的做法:SharedPreferences讀取和寫入速度

  1. 閱讀每次StringSharedPreferences,將其比作String趕到並SharedPreferences只寫,如果他們不相等(發生1:3000)
  2. 每到達String只寫入SharedPreferences,覆蓋存儲的值。

在同步和時間的背景下,更正確的方法是什麼?

+1

爲什麼你想每次讀'String'出你PREF回報?只需在第一次訪問之後存儲並比較即可。 –

+0

將它存儲在哪裏?應用程序可能會在中間關閉並重新打開。 –

+1

將它存儲在某個地方的靜態字段中,並且僅在共享首選項爲空時讀取...? – lelloman

回答

0

我認爲如果您創建兩個函數並比較它們的時間執行情況會更好,例如執行1000次操作並比較它們的結果。 您可以創建類似的功能:

public static long readAndCompare() { 

    long startTime = System.currentTimeMillis(); 
    //1000 read and compare operations 
    long endtime = System.currentTimeMillis(); 

    long readAndCompareExcutionTime = endtime - startTime; 
    return readAndCompareExcutionTime; 
} 


public static long OverrideSharedPreferenceValue() { 

    long startTime = System.currentTimeMillis(); 
    //1000 Override operations 
    long endtime = System.currentTimeMillis(); 

    long OverrideExcutionTime = endtime - startTime; 
    return OverrideExcutionTime; 
} 

和比較readAndCompare()OverrideSharedPreferenceValue()