Bolts 框架中的 continueWith() 和 onSuccess() 有什么区别?
What's the difference between continueWith() and onSuccess() in Bolts framework?
我在我的 Android 项目中使用 Bolts framework。看了好几遍文档,还是搞不懂continueWith()和onSuccess()的区别,因为回调方法和return值都是一样的。例如,
Task task = ParseGeoPoint.getCurrentLocationInBackground(10*1000);
这两种方法有什么区别?
task.onSuccess(new Continuation<ParseGeoPoint, Object>() {
@Override
public Object then(Task<ParseGeoPoint> task) throws Exception {
Log.d(TAG, "task done");
return null;
}
});
task.continueWith(new Continuation<ParseGeoPoint, Object>() {
@Override
public Object then(Task<ParseGeoPoint> task) throws Exception {
Log.d(TAG, "task done");
return null;
}
});
基本上,onSuccess()
只是在调用完成且没有错误时被调用,正如其名称所示。另一方面,continueWith()
总是被调用,即使在失败的情况下也是如此。因此,如果您只对检索成功请求的结果感兴趣,请使用 onSuccess()
,如果您还希望能够处理失败的请求,请使用 continueWith()
。
我在我的 Android 项目中使用 Bolts framework。看了好几遍文档,还是搞不懂continueWith()和onSuccess()的区别,因为回调方法和return值都是一样的。例如,
Task task = ParseGeoPoint.getCurrentLocationInBackground(10*1000);
这两种方法有什么区别?
task.onSuccess(new Continuation<ParseGeoPoint, Object>() {
@Override
public Object then(Task<ParseGeoPoint> task) throws Exception {
Log.d(TAG, "task done");
return null;
}
});
task.continueWith(new Continuation<ParseGeoPoint, Object>() {
@Override
public Object then(Task<ParseGeoPoint> task) throws Exception {
Log.d(TAG, "task done");
return null;
}
});
基本上,onSuccess()
只是在调用完成且没有错误时被调用,正如其名称所示。另一方面,continueWith()
总是被调用,即使在失败的情况下也是如此。因此,如果您只对检索成功请求的结果感兴趣,请使用 onSuccess()
,如果您还希望能够处理失败的请求,请使用 continueWith()
。