Android:当应用程序进入后台时存储ParseObject数据

Android:当应用程序进入后台时存储ParseObject数据,android,parse-platform,Android,Parse Platform,在我的代码中我有这个 public static List<MeetingApp> meetingAppList; 现在,我试图在ParseLocalDatastore中使用pin名保存列表。我认为这可能是一个简单的解决方案。所以只需使用gson库将其解析为Json即可 (序列化) 列表会议应用程序列表; Gson Gson=新的Gson(); 字符串json=gson.toJson(meetingAppList); //==>json是[{“value1”:1,“value2”:

在我的代码中我有这个

public static List<MeetingApp> meetingAppList;

现在,我试图在ParseLocalDatastore中使用pin名保存列表。我认为这可能是一个简单的解决方案。

所以只需使用gson库将其解析为Json即可

(序列化)

列表会议应用程序列表;
Gson Gson=新的Gson();
字符串json=gson.toJson(meetingAppList);
//==>json是[{“value1”:1,“value2”:“abc”},。。。
请注意,不能使用循环引用序列化对象,因为这将导致无限递归

(反序列化)

Type listType=new-TypeToken(){
}.getType();
List meetingAppList=gson.fromJson(json,listType);
//==>obj2与obj一样

Parse具有在本地数据库中保存对象的功能。它可以帮助您脱机保存数据,但也可以用于存储应用程序的数据


看看这个关于

的链接,你可以看看gson库,将其序列化为json并再次反序列化。你是否碰巧清理了
onPause
中的任何对象?请向我们展示崩溃的回溯。你找到解决方案了吗?谢谢你的回答。这个对象似乎有一个循环引用,因为出现了java.lang.StackOverflower错误。我要检查一下。你弄明白了吗?
Process: mcongress.mobicongress.com.mcongressapp, PID: 3922
java.lang.StackOverflowError
        at java.util.GregorianCalendar.computeYearAndDay(GregorianCalendar.java:798)
        at java.util.GregorianCalendar.fullFieldsCalc(GregorianCalendar.java:480)
        at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:573)
        at java.util.Calendar.complete(Calendar.java:830)
        at java.util.Calendar.setTimeInMillis(Calendar.java:1195)
        at java.util.Calendar.setTime(Calendar.java:1183)
        at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:518)
        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:818)
        at java.text.DateFormat.format(DateFormat.java:307)
        at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:90)
        at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:41)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
        at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:107)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
        at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:107)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
        at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:107)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
List<MeetingApp> meetingAppList;
Gson gson = new Gson();
String json = gson.toJson(meetingAppList);  
//==> json is [{"value1":1,"value2":"abc"},...
Type listType = new TypeToken<List<YourClass>>() {
                }.getType();
List<MeetingApp> meetingAppList = gson.fromJson(json, listType);   
//==> obj2 is just like obj