将5个json文件内容保存到缓存中:选择SharedPrefs而不是内部文件



我的问题是读取内部文件的性能。真的很慢。我没有量时间,但我觉得时间真的很慢。2-3秒读取这样的文件:

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下载数据(在本例中是从缓存)。但这不也是一个文件读取操作吗?

感谢

我最终使用了一个扩展的应用程序类,其中包含我的全局变量。这很快,而且我不必一直读文件。此外,我不必在片段构造函数中使用那么多参数。

相关内容

  • 没有找到相关文章

最新更新