2014-10-03 29 views
0

我正在構建一個閱讀TechChurn等android應用程序的文章。我以json的形式從服務器獲取數據。如何在android中創建緩存類?

我從json解析標題,作者姓名和文章內容並在列表視圖中顯示它。

此加載的文章保存在我的本地文件中,並在沒有互聯網訪問時加載到我的應用程序中。

這我已經使用緩存類。

現在假設我在我的應用程序中加載了50篇文章,我的應用程序在線模式意味着有互聯網服務,現在我在離線模式下再次打開我的應用程序意味着沒有Internet服務數據緩存並顯示來自本地的50篇文章緩存文件。

現在我面對的問題是,如果我的應用程序再次打開在線模式。 它載入最初陳述的10篇文章,這10篇文章是從前50篇文章中複製過去的本地文件,現在本地文件只有10篇文章。

這意味着如果我現在在離線模式下運行我的應用程序。

它只顯示10篇文章,因爲50篇文章已被10篇文章加載。 這裏是我的緩存類 -

package cache; 
public class CacheThis { 

private void CacheThis() {} 

public static void writeObject(Context context, String fileName, Object object) throws  
IOException { 
     FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE); 
     ObjectOutputStream oos = new ObjectOutputStream(fos); 
     oos.writeObject(object); 
     oos.flush(); 
     oos.close(); 

     fos.close(); 
    } 

    public static Object readObject(Context context, String fileName) throws IOException, 
     ClassNotFoundException { 
     FileInputStream fis = context.openFileInput(fileName); 
     ObjectInputStream ois = new ObjectInputStream(fis); 
     Object object = ois.readObject(); 
     fis.close(); 
     return object; 
    } 
    } 

回答

0

我覺得你的情況更好地使用的數據進行存儲脫機模式的數據庫。我更喜歡ORMLite: http://ormlite.com/sqlite_java_android_orm.shtml 在這種情況下,您不需要打開並讀取文件,每次爲每個項目解析json。 tou將與對象模型一起工作,而不是用原始json。

+0

我不想每次都加載數據。我需要,當任何新的文章解析在互聯網訪問時,特定的文章移動到本地文件,我存儲所有其餘文章。 – 2014-10-06 05:15:21