一 演變網絡
Android 4.4以前 提供了兩種HTTP交互的方式 HttpURLConnection(JDK)和HttpClient(Apache)app
Android 4.4開始 引入了OkHttp 用於替代HttpURLConnection(JDK)和HttpClient(Apache)ide
Android 6.0開始 刪除了HttpClient(Apache)oop
二 注意spa
Android 4.0開始 主線程不能聯網線程
由於聯網必定是一個耗時的操做 主線程是負責界面的顯示 不能阻塞 若是主線程被阻塞 用戶的行爲5s內沒法被系統響應 就會致使一個異常 ANR(application not response)code
三 聯網必要操做blog
1. 添加聯網權限資源
2. 開線程 new Thread(){run(){}}.start()get
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: 資源地址(本地資源 + 網絡資源 + ...)