service 可以再开启子线程去做网络请求。直接做请求有可能anr。

解决方案 »

  1.   

    如果是sdk 3.0下以,就算在UI线程访问网络不会引发错误,3.0以上的话就会引发错误
      

  2.   

    就是简单的继承Service,然后在onCreate方法中使用URL和HttpURLConnection打开一个网址
      

  3.   

    就是简单的继承Service,然后在onCreate方法中使用URL和HttpURLConnection打开一个网址
      

  4.   

    为什么不能在Service中访问网络呢? 只要你连接的时间不超过anr的时间(默认10秒),就可以正常使用啊!只不过这段时间,界面好像卡死了。
    但是不建议这么使用,一般好的做法要么用IntentService,要么就直接在你的Service中创建一个线程,把这些打开网址的工作放到线程里。
      

  5.   

    http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
    在3.0之后主线程是不允许访问网络的,但是并不一定会出现程序崩溃退出。
      

  6.   

    这样啊,明白了,在Activity中默认的ANR时间是5s,在BroadcastReceiver中是10s
      

  7.   

    http://blog.sina.com.cn/s/blog_780ac62a0101b18j.html 关于Android4.0不能在主线程中进行网络请求 
      

  8.   

    我在特意测试了一下,在Service中可以访问http请求,但是API中说Service默认情况下是和UI线程属于同一个线程,那不就矛盾了吗