我的問題是讀取內部文件的性能。這真的很慢。我沒有測量時間,但恕我直言,它真的很慢。 2-3秒讀取文件是這樣的:將5個json文件內容保存到緩存:選擇SharedPrefs而不是內部文件
private static String readJsonFile(String type, Context context) {
int ch;
StringBuffer sb = new StringBuffer("");
FileInputStream fis = null;
try {
fis = context.openFileInput(context.getResources().getString(R.string.class.getField("filename_" + type).getInt(null)));
while ((ch = fis.read()) != -1) {
sb.append((char)ch);
}
} catch (NotFoundException | IllegalAccessException | IllegalArgumentException | NoSuchFieldException | IOException e) {
e.printStackTrace();
}
String jsonString = new String(sb);
return jsonString;
}
得到的數據寫入應用程序,它使用的AsyncTask下載5個不同的JSON的輸入字符串的啓動畫面。
我想知道爲了訪問所有活動中的數據,是否會更快地將數據保存在共享首選項中。所以我不需要進行文件訪問操作。但是SharedPrefs也不是一個文件訪問操作,讀取一個xml文件?
或者我應該調用所有的函數,需要通過引用函數參數訪問全局可用的json數據嗎?做這個工作嗎?
長話短說: 我需要一個模式/模式來說明如何在應用程序的生命週期中存儲5個不同的JSON數據字符串,以便每個活動都可以訪問它們,而無需執行文件操作,還是數據庫請求?
是否有一些應用程序緩存來做到這一點?
編輯:我腦海中的另一個想法是使用HttpResponseCache並啓動下載數據(在這種情況下從緩存)的asyncActivity。但仍然不是這也是一個文件閱讀操作?
感謝
我發現了一些可能解決我的問題的東西:http://stackoverflow.com/questions/2676280/good-way-to-cache-data-during-android-application-lifecycle 但還有其他建議嗎? – Klaus