用于后台执行线程的基类



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 = "";

@Override
protected Boolean doInBackground(Void... params) {
result = doInTask();
return true;
}

@Override
protected void onPostExecute(final Boolean success) {
myTask = null;
showDialogLoading(false);
onTaskOver(result);
}

@Override
protected void onCancelled() {
myTask = null;
showDialogLoading(false);
}
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值