java回调:http://blog.csdn.net/xiaanming/article/details/8703708
网络请求的封装:http://www.jianshu.com/p/3141d4e46240
网络请求封装:
public class AsynNetUtils {
//接口里的方法就是回调方法
public interface Callback{
void onResponse(String response);
}
//get请求
public static void get(final String url, final Callback callback){
final Handler handler = new Handler();//handler是在主线程创建的
new Thread(new Runnable() {//此处启动子线程实现异步
@Override
public void run() {
final String response =NetUtils.get(url);//网络请求结束
handler.post(new Runnable() {//网络请求结束后使用主线程handler进行post转到主线程
@Override
public void run() {
callback.onResponse(response);//回调方法是在主线程里执行的
}
});
}
}).start();
}
//post请求
public static void post(final String url, final String content, final Callback callback){
final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
final String response = NetUtils.post(url,content);
handler.post(new Runnable() {
@Override
public void run() {
callback.onResponse(response);
}
});
}
}).start();
}
}
网络请求封装后使用
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.webview);
AsynNetUtils.get("http://www.baidu.com", new AsynNetUtils.Callback() {
@Override
public void onResponse(String response) {
textView.setText(response);
}
});