青岛Android培训
达内青岛山东中心

18300268127

热门课程

android 网络_网络源码查看器

  • 时间:2016-07-23
  • 发布:青岛android培训
  • 来源:青岛android培训

# 01 网络html源码查看器
    
    访问网络需要加Internet权限:
    android.permission.INTERNET

        
    使用UrlConnection请求一个url地址获取内容:

            //1.创建一个Url对象
                URL url = new URL(url_str);
            //2.获取一个UrlConnection对象
                HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            //3.为UrlConnection对象设置一些请求的参数,请求方式,连接的超时时间
                connection.setRequestMethod("GET");//设置请求方式
                connection.setConnectTimeout(1000*10);//设置超时时间
            //4.在获取url请求的数据前需要判断响应码,200 :成功,206:访问部分数据成功   300:跳转或重定向  400:错误 500:服务器异常
                int code = connection.getResponseCode();
                if(code == 200){
            //5.获取有效数据,并将获取的流数据解析成String
                    InputStream inputStream = connection.getInputStream();
                    String result = StreamUtils.streamToString(inputStream);
    


    注意事项:
        
        1. ANR:application not response 应用无响应; androoid中耗时的操作(请求网络,大文件的拷贝,数据库的操作)需要在子线程中做。
        09-02 01:52:40.711: E/ActivityManager(857): ANR in com.itheima.sourcelook (com.itheima.sourcelook/.MainActivity)

        2. 4.0后网络操作强制在子线程中进行。因为网络访问是耗时的操作,可能会导致ANR
        09-02 01:57:32.879: W/System.err(1789):  android.os.NetworkOnMainThreadException

        3.错误线程调用异常,子线程不能够更新UI(控件的内容)
            09-02 02:02:08.873: W/System.err(1858): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

    
        主线程不能够做耗时的操作,网络请求就是耗时的操作需要放到子线程做。子线程不能更新控件的内容(更新Ui)。所以产生了矛盾,解决办法就是使用Handler.

上一篇:ndroid BLE开发——Android手机与BLE终端通信初识
下一篇:实现Android K的伪沉浸式

Android是怎样被研发出来的?(二)

Android是怎样被研发出来的?(一)

以后Windows Defender再也不用第三方管家了

最实用的windows系统清理垃圾最快捷的方法

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊