最近一直在做即时通讯,刚开始遇到一个问题,log打印出来的就是android.os.NetworkOnMainThreadException,大概的意思就是在主线程操作网络,以前都没注意过这个问题,也是第一次遇到!以前都是用AsyncTask,简单,快捷,还可以直接操作UI,我就是一个找虐的人,这次偏不这么做了,直接用handler,于是乎就遇到了这个问题.
Android 4.0以后不允许网络操作在主线程中进行,那就用异步方法来操作
简单贴一下代码:
new Thread(new Runnable() { @Override public void run() { login(); Message message=Message.obtain(); handler.sendMessage(message); } }).start();
private Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { text.setText("登陆成功"); }; };
当然你也可以直接使用AsyncTask
时间: 2024-10-12 02:23:52