您的位置:首页 > 移动开发 > Android开发

android AsyncTask工具类

2016-01-27 11:46 465 查看
项目中有个模块使用viewpager+fragment,有大量fragment,里面需要请求网络,用AsyncTask,一个个写着真是麻烦

于是抽了出去

public abstract class MySendComAsynic extends AsyncTask<String, Integer, GsonDataBean> {

private Context context;
private GsonDataBean bean;
public MySendComAsynic(Context context) {
super();
// TODO Auto-generated constructor stub
this.context=context;
}

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}

@Override
protected GsonDataBean doInBackground(String... params) {
String result="";
try {
result = BaseActivity.requestUrl(HttpMethod.GET, params[0], null);

} catch (Exception e) {
Toast.makeText(context, "获取服务器信息失败", 2000).show();
}
Gson gson = new Gson();
GsonDataBean bean=null;
try {
bean=gson.fromJson(result, GsonDataBean.class);
} catch (Exception e) {
Toast.makeText(context, "json解析失败", 2000).show();
}
return bean;
}

@Override
protected void onPostExecute(GsonDataBean result) {
// TODO Auto-generated method stub
super.onPostExecute(result);

processdata(result);
}

public abstract  void processdata(GsonDataBean result);

}


在使用的页面

//url为随意写的
String url=http://write.blog.csdn.net/mdeditor
dTask = new MySendComAsynic(getActivity()) {
@Override
public void processdata(GsonDataBean result) {
Toast.makeText(getActivity(),result.message, 0).show();
}
};
dTask.execute(url);


这样就非常简单了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息