onSuccessful method

  1. @protected
FutureOr<bool> onSuccessful(
  1. T data
)

本次任务执行成功后调用

data为本次任务执行周期中的数据包装类,由onCreateWorkData创建, 其中包含Http响应结果WorkData.response,同时有onRequestSuccessful返回的结果数据WorkData.resultonRequestSuccessfulMessage设置的WorkData.message

  • 在任务成功即onRequestResult返回true,onRequestSuccessfulonRequestSuccessfulMessage正常执行后执行。

  • 该方法在onFinished之前被调用。

  • 如果任务被onStarted拦截,则此方法不会被调用。

  • 此方法一定是从服务器获取了正确的数据后才执行,是个保存缓存的好地方。

  • 此方法不允许抛出异常,如果存在危险操作,请自行处理异常。

  • 返回值为是否重新执行本次请求,如果为true,则本次请求结果将不会从start调用点处返回,而是丢弃本次结果然后重新执行start方法后在调用点处返回。

  • 当返回true时要注意避免进入无限重请求循环,onMaxRestart可以限制最大重试次数。

  • 此处的重启不同于start中的retry参数,两者互不干扰同时生效。

  • retry参数仅表示最终网络请求的重试次数,重试期间不会执行其它work的生命周期函数。

  • 此处的重启表示work本身的重新启动,每次重启与首次执行start方法的参数和流程相同。

Implementation

@protected
FutureOr<bool> onSuccessful(T data) => false;