Bolts框架中的continueWith()和onSuccess()有什么区别?

时间:2015-01-13 07:56:55

标签: android bolts-framework

我在Android项目中使用Bolts framework。我多次阅读这些文档,但我仍然对continueWith()和onSuccess()之间的区别感到困惑,因为回调方法和返回值都是一样的。例如,

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;
    }
});

1 个答案:

答案 0 :(得分:3)

基本上,onSuccess()被调用,正如其名称所示,当调用完成且没有错误时。另一方面,即使在失败的情况下,也会始终调用continueWith()。因此,如果您只对成功请求检索结果感兴趣,请使用onSuccess(),如果您还希望能够处理失败的请求,请使用continueWith()