Android Honeycomb:NetworkOnMainThreadException即使使用AsyncTask而且没有严格模式?

jel*_*ish 16 android android-asynctask android-3.0-honeycomb android-strictmode

我用我的Android 3.0应用程序遇到了NetworkOnMainThreadException.正在寻找解决方案我找到了这个,但如果我理解正确,默认设置将是关闭严格模式.

此外,我的所有网络访问都在一个AsyncTask,所以我无论如何也看不到这个例外中的重点.

所以,我现在非常绝望,我应该做些什么来阻止这个...

亲切的问候,水母

编辑:

这篇博客文章说AsyncTask应该足够了,但至少可以澄清StrictMode点.

解:

我关闭了StrictMode(它可能更好地保留一些设置,但我不能打扰......):

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Run Code Online (Sandbox Code Playgroud)

在那之后,我确实遇到了"java.lang.RuntimeException:这个线程禁止HTTP请求",但是在这里找到了解决方案.不过我有点困惑,因为AndroidHttpClient我在Android 2.0+应用程序中使用它时效果很好......

解决方案,第2部分

事实证明,使用AsyncTask是一个不错的主意但如果做错了就没用了 ......所以严格模式的反应没有任何问题.应该听,呃?;)

仍然很高兴知道它默认在Honeycomb上激活.

Jor*_*sys 14

在Android Honeycomb StrictMode已启用,请关闭onCreate()函数添加代码...

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);       
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
Run Code Online (Sandbox Code Playgroud)


PJL*_*PJL 5

默认情况下,在Honeycomb中打开StrictMode.

请具体说看链接penaltyDeathOnNetwork().我遇到了类似的问题.