很早就知道Android4.0以后,要把耗时的网络操作放在多线程中,处理方法有:
1)
setContentView(R.layout.activity_main)下面加上如下代码
if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); }
2)大多数人还是比较喜欢这种方式(new thread + handler)
onCreate(){
new Thread(runnable).start();
}
Runnable runnable = new Runnable(){
//重写run方法,把网络耗时操作移步到此,把网络获取的data放在Message
然后通过handler.sendMessage(msg)
}
Handler handler = new Handler(){
//重写handleMessage方法,把网络数据更新到UI上即可
}
今天傻傻的按照第二种方法做,结果,还是抱同样的异常,连续换了N种写法,最后,惭愧,我竟然把网络操作放在handler方法中,好笨。