我知道必须有很多游标没有关闭。但Parse剂量没有任何方法可以做到这一点。希望Parse开发人员可以帮我看看。
代码:如果不需要从云端更新,则从本地数据存储区获取
ParseQuery<ParseObject> query = ParseQuery.getQuery(PARSE_CLASS);
if(!remote) {
logD("fetch from local server");
query.fromPin(PIN_LABEL);
}
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(final List<ParseObject> list, ParseException e) {
if(null == e) {
logD("get list size " + list.size());
if(remote) {
ParseObject.unpinAllInBackground(PIN_LABEL, new DeleteCallback() {
@Override
public void done(ParseException parseexception) {
ParseObject.pinAllInBackground(PIN_LABEL, list);
}
});
}
initialize(list);
} else {
e.printStackTrace();
}
}
});
下面是ParseException。
01-07 13:57:24.386: W/System.err(23995): Caused by: java.lang.IllegalStateException: Process 23995 exceeded cursor quota 100, will kill it 01-07 13:57:24.386: W/System.err(23995): at android.database.CursorWindow$Injector.checkQuota(CursorWindow.java:85) 01-07 13:57:24.386: W/System.err(23995): at android.database.CursorWindow$Injector.addQuota(CursorWindow.java:73)
01-07 13:57:24.386: W/System.err(23995): at android.database.CursorWindow.recordNewWindow(CursorWindow.java:810)
01-07 13:57:24.386: W/System.err(23995): at android.database.CursorWindow.<init>(CursorWindow.java:192)
01-07 13:57:24.386: W/System.err(23995): at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
01-07 13:57:24.386: W/System.err(23995): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)
01-07 13:57:24.386: W/System.err(23995): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
01-07 13:57:24.386: W/System.err(23995): at com.parse.ParseSQLiteDatabase(2.then(ParseSQLiteDatabase.java:214)
01-07 13:57:24.386: W/System.err(23995): at com.parse.ParseSQLiteDatabase(2.then(ParseSQLiteDatabase.java:205)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task(0.run(Task.java:486)
01-07 13:57:24.386: W/System.err(23995): at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:97)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task.completeAfterTask(Task.java:482)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task.continueWithTask(Task.java:358)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task.continueWithTask(Task.java:369)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task$8.then(Task.java:415)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task$8.then(Task.java:407)
01-07 13:57:24.386: W/System.err(23995): at bolts.Task(0.run(Task.java:486)
01-07 13:57:24.386: W/System.err(23995): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-07 13:57:24.386: W/System.err(23995): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-07 13:57:24.386: W/System.err(23995): at java.lang.Thread.run(Thread.java:856)))))