在ICS上,当使用UrlConnection时,我遇到了android.os.NetworkOnMainThreadException错误 - 即使我在一个独立进程的服务中进行此请求,并通过Messenger异步调用以完成它。更改StrictPolicy没有效果,我仍然会收到错误。我该怎么办?编辑:此服务在单独的进程中运行 - 具有不同的pid和所有内容。
根据文档,服务仍然在主线程上运行:请注意,像其他应用程序对象一样,服务在其托管进程的主线程上运行。这意味着,如果您的服务将执行任何CPU密集型(例如MP3播放)或阻塞(例如网络)操作,则应在其自己的线程中生成该工作线程。有关此内容的更多信息,请参见“进程和线程”。IntentService类可用作Service的标准实现,其具有自己的线程,在其中调度要完成的工作。因此,对于长时间运行的任务(例如使用UrlConnection),您应该使用诸如IntentService之类的东西,或者自己生成一个新线程。