-
Notifications
You must be signed in to change notification settings - Fork 113
附、WorkTask
wangdan edited this page Oct 12, 2014
·
5 revisions
Aisen框架异步线程,修改自android源码AsyncTask。所有耗时操作都使用WorkTask,ABaseFragment有内部线程ABaseTask,ARefreshFragment有分页线程PagingTask。详细信息请分别查看ABaseFragment 、ARefreshFragment。
- onPrepare()
- 异步方法前执行,一般显示一个ProgressDialog
- workInBackground(Params... params) throws TaskException
- 异步方法,执行在线程中
- 抛出TaskException,包含网络异常、WebService服务返回异常或者其他任何异常
- onSuccess(Result result)
- 异步线程没有抛出异常,返回Result后调用
- Result可以为null
- 如果在Fragment中,记得判断getActivity()是否为null
- onFailure(TaskException exception)
- 处理异步方法抛出的异常
- 一般将错误信息显示在视图上,或者Toast反馈
- onFinished()
- 线程执行结束方法,一般dismiss掉一个ProgressDialog
- 不管onSuccess或者onFailure,这个方法都会执行
异步线程最常用于调用WebService接口,以及将返回的数据反馈到UI上,我常见其他同事使用Handler+Thread,或者volley等框架。个人非常憎恶Handler+Thread,一堆的重复代码到处copy。其他框架倾向于面向点将各方法暴露在Activity或者Fragment中,例如一个方法readData(),一个方法parseData,一个方法bindData各自自个玩,流程虽然统一业务不具备连贯性。使用WorkTask,将每一个业务流程封装在一个对象中,完全解耦。乳沟你已经熟悉了ABaseTask,PagingTask等内部类线程,你将更加体会它的优势。