服务器中的android.os.NetworkOnMainThreadException在一个单独的进程中

Vad*_*kin 5 android networkonmainthread

在ICS上,我在使用UrlConnection时遇到android.os.NetworkOnMainThreadException错误 - 即使我在一个运行在它自己的进程上的服务中发出此请求,并且被异步调用以通过Messenger完成.

更改StrictPolicy无效,我仍然收到错误.

我能做什么?

编辑:此服务在一个单独的进程中运行 - 具有不同的pid和所有内容.

Ada*_*amK 4

根据文档,服务仍然在主线程上运行

请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。这意味着,如果您的服务要执行任何 CPU 密集型(例如 MP3 播放)或阻塞(例如网络)操作,它应该生成自己的线程来完成该工作。有关这方面的更多信息可以在进程和线程中找到。IntentService 类可用作 Service 的标准实现,它有自己的线程,可以在其中安排要完成的工作。

因此,对于长时间运行的任务(例如使用 UrlConnection),您应该使用IntentService之类的东西或自己生成一个新线程。

  • 该服务在单独的进程中运行。 (2认同)