Android将耗时任务都使用线程来访问,避免了ANR。
出现这个异常是由于从Honeycomb SDK(3.0)开始,google不再允许网络请求(HTTP、Socket)等相关操作直接在Main Thread类中。
解决办法:将网络访问放到新线程中。
/**
* 网络操作相关的子线程
*/
Runnable networkTask = new Runnable() {
@Override
public void run() {
// TODO
// 在这里进行 http request.网络请求相关操作
Message msg = new Message();
Bundle data = new Bundle();
data.putString("value", "请求结果");
msg.setData(data);
handler.sendMessage(msg);
}
};