我的 Android 3.0 应用程序遇到了NetworkOnMainThreadException。寻找解决方案时我发现了这个,但如果我理解正确,默认设置是关闭严格模式。
此外,我所有的网络访问都在一个 中AsyncTask
,所以无论如何我都看不到这个异常的意义。
所以,我现在很绝望我应该做些什么来防止这种情况......
亲切的问候,水母
编辑:
这个博客条目说 AsyncTask 应该足够了,但至少澄清了 StrictMode 点。
解决方案:
我关闭了 StrictMode(保留一些设置可能更好,但我不会被打扰......):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
之后,我确实遇到了“java.lang.RuntimeException:此线程禁止 HTTP 请求”,但在这里找到了解决方案。不过,我有点困惑,因为AndroidHttpClient
当我在我的 Android 2.0+ 应用程序中使用它时效果很好......
解决方案,第 2 部分
事实证明,使用 AsyncTask 是一个好主意,但如果做错了就毫无用处……所以严格模式的反应没有任何问题。应该听的,嗯?;)
仍然很高兴知道它默认在 Honeycomb 上激活。