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

[android] 两种异步方式

2016-07-01 11:02 357 查看
使用AsyncTask开启子线程获取服务器数据,更新界面UI

/**
* 异步任务
*
* @author taoshihan
*
*/
public class HttpAsyncTask extends AsyncTask<String, Void, String> {
/**
* 在执行后台任务之前执行
*/
@Override
protected void onPreExecute() {
String netInfo = NetUtils.getNetworkInfo(context);
if ("no".equals(netInfo)) {
Toast.makeText(context, "网络连接失败", 0).show();
} else if ("wifi".equals(netInfo)) {
Toast.makeText(context, "wifi连接", 0).show();
} else if ("mobile".equals(netInfo)) {
Toast.makeText(context, "手机流量连接", 0).show();
}
}

/**
* 后台运行,耗时的操作都放在这里,相当于Thread的run方法
*/
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
return null;
}

/**
* 在执行后台任务之后,可以在这更改UI界面,相当于Handler里面的处理方法
*/
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}

}


使用Thread和Handler异步获取信息

/**
* 使用线程和Handler
* @author taoshihan
*
*/
public class HttpHandler extends Handler{
@Override
public void handleMessage(Message msg) {
//处理Message
}
}
public class HttpThread extends Thread{
@Override
public void run() {
//发送Message
new HttpHandler().sendMessage(new Message());
}
}


new HttpThread().start();
new HttpAsyncTask().execute("htp://www.baidu.com");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: