我在尝试从 url 中提取 json 数据时收到错误“android.os.networkonmainthreadexception”。 有人能告诉我为什么吗?
最佳答案
这是由于 StrictMode.ThreadPolicy。它从 API 级别 9 开始引入,默认线程策略从 API 级别 11 开始改变,简而言之,不允许网络操作(例如:HttpClient 和 HttpUrlConnection)在 UI 线程上执行。如果你这样做,你会得到 NetworkOnMainThreadException。
解决此问题的推荐方法是使用 AsyncTask,这样网络请求就不会阻塞 UI 线程。
您可以通过将以下代码添加到主 Activity 的 onCreate() 方法中来覆盖此线程策略。
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy =
new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
关于java - android中的android os networkonmainthreadexception错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12573452/