Android 網絡編程

一 演變網絡

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: 資源地址(本地資源 + 網絡資源 + ...)

相關文章
相關標籤/搜索