onSuccessful method
本次任务执行成功后调用
data
为本次任务执行周期中的数据包装类,由onCreateWorkData创建,
其中包含Http响应结果WorkData.response,同时有onRequestSuccessful返回的结果数据WorkData.result,
onRequestSuccessfulMessage设置的WorkData.message。
-
在任务成功即onRequestResult返回true,onRequestSuccessful和onRequestSuccessfulMessage正常执行后执行。
-
该方法在onFinished之前被调用。
-
如果任务被onStarted拦截,则此方法不会被调用。
-
此方法一定是从服务器获取了正确的数据后才执行,是个保存缓存的好地方。
-
此方法不允许抛出异常,如果存在危险操作,请自行处理异常。
-
返回值为是否重新执行本次请求,如果为true,则本次请求结果将不会从start调用点处返回,而是丢弃本次结果然后重新执行start方法后在调用点处返回。
-
当返回true时要注意避免进入无限重请求循环,onMaxRestart可以限制最大重试次数。
-
此处的重启不同于start中的
retry
参数,两者互不干扰同时生效。 -
retry
参数仅表示最终网络请求的重试次数,重试期间不会执行其它work的生命周期函数。 -
此处的重启表示work本身的重新启动,每次重启与首次执行start方法的参数和流程相同。
Implementation
@protected
FutureOr<bool> onSuccessful(T data) => false;