使用Okhttp请求的时候程序遇到这个问题崩溃了,原因是在UI线程中请求网络,这在安卓中是不被允许的,解决办法是开启新的线程并使用Handler和Message处理消息,具体如下:
关键代码如下:
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_LONG).show();
}
};
new Thread(new Runnable() {
@Override
public void run() {
try {
String s = OkUtils.loadStringFromUrl(Constants.URL);
if(s==null){
}else {
Message m = Message.obtain();
m.obj = s;
handler.sendMessage(m);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();