多線程及網(wǎng)絡編程

1.理解Android 的多線程的基本概念

進程:運行中的應用程序稱為進程,擁有系統(tǒng)資源(cpu、內存)

線程:進程中的一段代碼,一個進程中可以有多段代碼。本身不擁有資源(共享所在進程的資源)
在java中,程序入口被自動創(chuàng)建為主線程,在主線程中可以創(chuàng)建多個子線程。
多線程: 在同一應用程序中有多個功能流同時執(zhí)行

2.掌握 Android 的主線程與子線程交互的常用方法

1、handler

2、Activity.runOnUIThread(Runnable)

3、View.Post(Runnable)

4、View.PostDelayed(Runnabe,long)

5、AsyncTask

3.理解 Handler 的異步消息機制的實現(xiàn)原理

Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四個部分。但我們在日常開發(fā)中,經(jīng)常都只會用到 Handler 和 Message 兩個類。Message 負責消息的搭載,里面有個 target 用于標記消息,obj 用于存放內容,Handler 負責消息的分發(fā)和處理。

4.掌握 AsyncTask 類的各個方法的定義及作用

onPreExecute://在UI線程調用,在doInBackground之前執(zhí)行,顯示加載框、AsyncTask的準備工作
doInBackground://在后臺線程調用,執(zhí)行后臺任務的方法
onProgressUpdate://在UI線程調用,顯示操作進度
onPostExecute:////在UI線程調用,在doInBackground之后執(zhí)行 ,隱藏加載框、任務完成,通知主線程結果

5.掌握 Handler、AsyncTask 的開發(fā)流程

handler

  • 首先new一個Handler對象
  • 需要更新UI的子線程代碼處new一個Message對象與主線程通信
  • 當Handler接收到Message之后,通過if語句判斷what值
  • 執(zhí)行我們刷新UI的邏輯

AsyncTask
一個異步任務的執(zhí)行一般包括以下幾個步驟:

  • execute,執(zhí)行一個異步任務,觸發(fā)異步任務的執(zhí)行。
  • onPreExecute,在執(zhí)行后臺任務前對 UI做一些
    標記。
  • doInBackground,在 onPreExecute()完成后立即執(zhí)行,用于執(zhí)行較為費時的操作。
  • onProgressUpdate在調用,此方法被執(zhí)行,直接將進度信息更新到UI組件上。
  • onPostExecute,當后臺操作結束時,此方法將會被調用,計算結果將做為參數(shù)傳遞到此方法中,直接將結果顯示到 UI 組件上。

6.掌握 Http 協(xié)議的基本概念

請求由三部分組成,分別是:請求行、消息報頭、請求正文
HTTP(超文本傳輸協(xié)議)是一個基于請求與響應模式的、無狀態(tài)的、應用層的協(xié)議,?;赥CP的連接方式,

常用的HTTP方法
GET: 用于請求訪問已經(jīng)被URI(統(tǒng)一資源標識符)識別的資源,可以通過URL傳參給服務器。
POST:用于傳輸信息給服務器,主要功能與GET方法類似,但一般推薦使用POST方式。

7.掌握 HttpURLConnection 訪問網(wǎng)絡的開發(fā)流程

  • 準備HttpURLConnection請求地址url。
  • 準備請求數(shù)據(jù)并拼接到請示url上。
  • 如果請求url中請求參數(shù)存在中文的情況,要先將url進行encode操作
  • 創(chuàng)建連接:HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection();
  • 設置此時請求的requestHeader請求頭信息
  • 進行請求連接:connection.connect();
  • 創(chuàng)建一個讀取響應信息的一個輸入流類BufferedReader

8. 掌握 OkHttp、Voiley 或 Retrofit 等一種網(wǎng)絡通訊框架的使用方法

Retrofit網(wǎng)絡通訊框架

  • 添加Retrofit庫的依賴
  • 創(chuàng)建 接收服務器返回數(shù)據(jù) 的類
  • 創(chuàng)建 用于描述網(wǎng)絡請求 的接口
  • 創(chuàng)建 Retrofit 實例
  • 創(chuàng)建 網(wǎng)絡請求接口實例 并 配置網(wǎng)絡請求參數(shù)
  • 發(fā)送網(wǎng)絡請求(異步 / 同步),封裝了 數(shù)據(jù)轉換、線程切換的操作
  • 處理服務器返回的數(shù)據(jù)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容