读书人

用以后台执行线程的基类

发布时间: 2013-08-20 17:47:51 作者: rapoo

用于后台执行线程的基类

package com.hk.wos;import android.os.AsyncTask;/** * 方便在activity中获取网络任务 *  * @author 包子大叔 * @time 2013-8-15 下午4:16:18 */public abstract class BaseTaskActivity extends BaseActivity {/** * 后台线程,一般用于获取网络任务 */protected MyTask myTask;/** * 判断默认线程myTask是否正在运行 *  * @return */protected boolean isTaskWorking() {if (myTask != null) {return true;} else {return false;}}/** * 启动线程,一般用于网络数据的获取; 线程主体请实现doInTask()方法, 线程结束后将调用onTaskOver()方法; */protected void startTask() {if (isTaskWorking()) {toast("任务正在执行...");} else {showDialogLoading(true);myTask = new MyTask();myTask.execute();}}/** * 线程主体,只能做数据处理,不能处理UI *  * @return 返回网络任务得到的json字符串,本字符串会传入onTaskOver()方法中 */abstract protected String doInTask();/** * 线程完成后触发本方法,可以在这里进行数据处理,UI处理,(不需要关系线程和等待中对话框) *  * @param result *            后台线程主体doInTask()方法返回的字符串 */abstract protected void onTaskOver(String result);/** * 一般用于获取网络数据 *  * @author 包子大叔 * @time 2013-8-15 下午4:14:58 */public class MyTask extends AsyncTask<Void, Void, Boolean> {String result = "";@Overrideprotected Boolean doInBackground(Void... params) {result = doInTask();return true;}@Overrideprotected void onPostExecute(final Boolean success) {myTask = null;showDialogLoading(false);onTaskOver(result);}@Overrideprotected void onCancelled() {myTask = null;showDialogLoading(false);}}}

读书人网 >移动开发

热点推荐