一 演变

Android 4.4之前 提供了两种HTTP交互的方式 HttpURLConnection(JDK)和HttpClient(Apache)

Android 4.4开始 引入了OkHttp 用于替代HttpURLConnection(JDK)和HttpClient(Apache)

Android 6.0开始 删除了HttpClient(Apache)

 

二 注意

Android 4.0开始 主线程不能联网

因为联网一定是一个耗时的操作 主线程是负责界面的显示 不能阻塞 如果主线程被阻塞 用户的行为5s内无法被系统响应 就会导致一个异常 ANR(application not response)

 

三 联网必要操作

1. 添加联网权限

2. 开线程 new Thread(){run(){}}.start()

3. 使用Handler + Message完成子线程和主线程之间的通讯(子线程不能操作UI 只有主线程才能操作显示)

 

四 特例

在特定条件下 子线程也可以操作UI

new Thread() {
    public void run() {
        // 子线程操作UI的第一种方式(内部封装Handler + Message)
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), "子线程操作UI", Toast.LENGTH_SHORT).show();
            }
        });
    }
}.start();

new Thread() {
    public void run() {
        // 子线程操作UI的第二种方式(内部封装Handler + Message)
        Looper.prepare();
        Toast.makeText(getApplicationContext(), "子线程操作UI", Toast.LENGTH_SHORT).show();
        Looper.loop();
    }
}.start();

 

五 名词

URL: 网络资源地址

URI: 资源地址(本地资源 + 网络资源 + …)

 

版权声明:本文为huangyi-427原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/huangyi-427/p/9546950.html