【发布时间】:2017-09-27 11:00:04
【问题描述】:
我来了
java.lang.OutOfMemoryError
当我使用 Gson 将对象列表转换为 JSON 时,对于某些用户(并非总是如此)。请告诉我如何解决这个问题。
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if(myList != null && !myList.isEmpty()) {
//exception at this line
String myJson = new Gson().toJson(myList, myList.getClass());
outState.putString(MY_LIST, myJson);
}
outState.putInt(NEXT_PAGE, getNextPage());
}
myList 是我的自定义对象列表,列表大小为 400kb 到 600kb
【问题讨论】:
-
检查 myList 的大小
-
@Stultuske 它的尺寸很大。但我必须转换大型列表。有什么办法吗?
-
myList是普通列表吗?myList中包含的对象类别是什么? -
@HeikkiMäenpää 这是我的自定义对象列表,列表大小为 400kb 到 600kb
-
你可以将单个对象转换为 JSON 没有任何麻烦吗?当一个对象的一个类型的成员具有对其所属对象的引用时,我已经看到 JSON 序列化陷入递归。
标签: java android json gson savestate