默认情况下,Android主线程(UI线程)不让进行网络请求,否则会抛出NetworkOnMainThreadException。
但是主线程还可以让程序员进行其它类型的耗时操作,比如读写磁盘数据、遍历操作一个大数组,但是如果超过5秒就会提示ANR错误。
那么如何让主线程可以访问网络,而不抛出异常呢?在我们的Activity类的onCreate方法中,设置如下规则:
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);