我正在开发Android多人游戏。我的JSON文件包含800 000多个字典单词。一旦玩家进入GameActivity实际玩游戏,JSON数组就会被加载到List中。因此,每次玩家开始1vs1游戏时,JSON都会被加载到List<&gt ;.
现在,我有两个选择:
以最佳方式加载JSON,以便用户在一段时间后不会出现内存错误
将JSON文件加载到List<>只有一次,申请开放时。
我不确定这2个案例中的任何一个,有人可以帮我解释一下如何做到这一点吗?谢谢
答案 0 :(得分:0)
由于我的回复,我无法发表评论。 但你可以尝试几种不同的方法解决这个问题。
如果您的JSON很少变化,我可以建议this method。
您可以将json放入资产文件中。并使用此
在运行时调用brew uninstall --force r
或者您可以在应用启动之前获取您的Json并存储在ContentProvider(DB或SharedPreference)中。这样你只需要在必要时获取你的json。
public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getActivity().getAssets().open("yourfilename.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}