我在我使用Parse SDK的Activity中收到此错误。整个代码是here,但代码是巨大的,崩溃甚至没有给我在哪里发生的代码行。我搜查了很多,但没有发现这个错误。谁能告诉我这个错误究竟意味着什么?致命例外:ParseRequest.NETWORK_EXECUTOR-thread-60
截图:
我在我使用Parse SDK的Activity中收到此错误。整个代码是here,但代码是巨大的,崩溃甚至没有给我在哪里发生的代码行。我搜查了很多,但没有发现这个错误。谁能告诉我这个错误究竟意味着什么?致命例外:ParseRequest.NETWORK_EXECUTOR-thread-60
截图:
由于加入了代码示例,我会写一个答案。
您正在使用AsyncTask来执行多个查询并了解这些查询何时完成。
解析最近添加了螺栓他们的API(1.7.0或1.7.1)https://github.com/BoltsFramework/Bolts-Android
用螺栓,你可以做同样的,你可以在JavaScript中承诺,如果你是熟悉。
一个简单的例子删除匹配查询的所有对象:
findAsync(query).continueWithTask(new Continuation<List<ParseObject>, Task<Void>>() {
public Task<Void> then(Task<List<ParseObject>> results) throws Exception {
// Collect one task for each delete into an array.
ArrayList<Task<Void>> tasks = new ArrayList<Task<Void>>();
for (ParseObject result : results) {
// Start this delete immediately and add its task to the list.
tasks.add(deleteAsync(result));
}
// Return a new task that will be marked as completed when all of the deletes are
// finished.
return Task.whenAll(tasks);
}
}).onSuccess(new Continuation<Void, Void>() {
public Void then(Task<Void> ignored) throws Exception {
// Every comment was deleted.
return null;
}
});
的return Task.whenAll(tasks);
收益将触发onSuccess
只有当tasks
数组列表中的所有任务已完成的任务。
这不仅依赖于Parse自己的后台管理,这个例子也让所有任务并行运行,所以通常更快。
在你的情况,你会简单的需要创建一个普通的方法是:
query1
和query2
比方说这个方法是loadPicsInBg
,然后使用它:
loadPicsInBg().onSuccess(new Continuation<Void, Void>() {
public Void then(Task<Void> ignored) throws Exception {
// all the queries completed
return null;
}
});
我知道这是一个巨大的重构,也许你可以用更简单的回调方法做得很好,但如果使用正确的话,Bolt确实会给复杂查询带来更多的能力。此外,它避免了嵌套查询在代码中创建不断增加的缩进的问题,使其难以阅读。
谢谢!问题是loadPicsInBg()。每当我重新开始活动时,我猜测线程正在增加。最后在4-5重新开始活动后,它坠毁了。 – berserk 2014-11-01 12:12:34
有一种感觉,它有什么关系:)高兴我可以帮忙 – cYrixmorten 2014-11-01 12:18:36
我注意到你在AsyncTask里面查询,认为这可能会伤害到线程管理。 – cYrixmorten 2014-11-01 11:07:22
@cYrixmorten但是为什么?我在后台线程中查询。 – berserk 2014-11-01 11:08:20
我担心的是,如果你错误地解雇了任何一次AsyncTask的两次。只要知道我曾经将一些对象固定在一个同步方法中,这足以使它无限地随机挂起。此外,他们提供了很好的queryInBackground方法,现在也支持Bolt,所以没有理由尝试和强制AsyncTask?这并不是说我确信这是错误的原因,只是一个强烈的怀疑。 – cYrixmorten 2014-11-01 11:14:00