NetworkOnMainThreadException

NetworkOnMainThreadException

我刚刚在官方文档中发现了NetworkOnMainThreadException

并想知道模拟器是否抛出这个。我一直在测试我的应用程序,据我所知,所有网络都是主线程(使用Roboguice RoboAsyncTask),但你永远不知道是否有人没有逃脱。

我也在使用StrictMode并且没有看到任何东西。

  1. 我的代码是干净的还是不会在模拟器上抛出?

  2. 我们应该如何为生产中的这种情况做好准备?

  3. 宽限期或其他什么?或者现在已经过去了;-) ??


眼眸繁星
浏览 779回答 4
4回答

青春有我

使用蜂窝网络时,您无法在其主线程上执行网络操作,如文档所述。因此,您必须使用handler或asynctask。没有其他方法可以做到这一点。

拉莫斯之舞

我已经测试了这个,它实际上也发生在模拟器上。如果您计划将其应用到3.0平板电脑以上,请确保至少在模拟器上测试您的应用。

墨色风雨

NetworkOnMainThreadException在main方法中执行某些网络操作时发生; 我的意思Oncreate()。您可以使用它AsyncTask来解决此问题。或者你可以使用StrictMode.ThreadPolicy mypolicy = new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);内部onCreate()方法。

哔哔one

如果你在3.0上运行,我无能为力; 因为Strict模式默认打开; 但它高于一点,那么这可能会有所帮助StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);在创建HTTP连接之前包括此内容; 然后它工作
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java