簡體   English   中英

異步線程-與UI進行數據交換

[英]Async thread - dataexchange with UI

在我的應用程序中,我必須從服務器下載數據。 我將HTTP請求放在Async-Thread中。 如何在主界面中使用數據(==字符串)?

該平台是Android,編程語言是Java 1.6。

假設您實際上使用的是AsyncTask ,而不是Async Thread(無論如何)。

AsyncTask上的Android文檔中,“四個步驟”部分:

  1. onPreExecute(),在執行任務之前在UI線程上調用。 此步驟通常用於設置任務,例如,通過在用戶界面中顯示進度欄。
  2. doInBackground(Params ...),在onPreExecute()完成執行后立即在后台線程上調用。 此步驟用於執行可能需要很長時間的后台計算。 異步任務的參數將傳遞到此步驟。 計算結果必須通過此步驟返回,並將傳遞回最后一步。 此步驟還可以使用publishProgress(Progress ...)發布一個或多個進度單位。 這些值在onProgressUpdate(Progress ...)步驟中發布在UI線程上。
  3. onProgressUpdate(Progress ...),在調用publishProgress(Progress ...)之后在UI線程上調用。 執行的時間是不確定的。 此方法用於在后台計算仍在執行時在用戶界面中顯示任何形式的進度。 例如,它可用於為進度欄設置動畫或在文本字段中顯示日志。
  4. onPostExecute(Result),在后台計算完成后在UI線程上調用。 后台計算的結果作為參數傳遞到此步驟。

您似乎正在尋找第四種方法。 如上所述: onPostExecute將在您的UI線程中以Result作為參數調用(類型設置為任務的通用參數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM