簡體   English   中英

線程,UI線程,工作線程,異步任務

[英]Thread ,UI thread, Worker Thread, Async Task

在嘗試理解Android中的ProcessesThreads概念時,我很困惑。 下面我提幾個問題。 也許那些是愚蠢的問題,但請幫我回答這些問題並澄清我的疑慮。

1)如果我創建一個將運行的線程? 在主(UI) Thread

2)如果我創建的線程在后台工人運行Thread那么什么是使用AsyncTask (我的意思是它是如何比線程更好)?

3)我們可以在AsyncTask中創建一個Thread嗎?

 1. If i create a thread where it will run? in Main(UI) thread/Worker Thread?

它將在不在主線程中的Worker線程中運行。

2.If my created thread runs on worker `Thread` then what is the use of `AsyncTask` (I mean how it is better than thread)?

AsyncTask用於與主線程進行通信。例如,您正在從Internet下載文件,因此您需要更新Activity的下載進度..對於此AsyncTask更適合。 您將使用onProgressUpdate()方法更新The Ui。因此您可以輕松地與UI線程進行通信。

 3)Can we create a thread in Async task?

是的,你可以創建它,但它沒用,因為AsyncTask有一個已經在不同的Thread運行的doInBackGround()方法,所以不需要在AsyncTask創建一個新的Thread

  1. 如果您在Activity中創建一個線程。 它將作為一個單獨的線程運行。 默認情況下,Activity在UI線程中運行。它也稱為主線程。
  2. 異步任務只不過是一個工作線程,它用於運行不會阻塞UI線程的后台操作。 例如:下載文件。
  3. Asynctask本身就是一個separte線程,它有自己的生命周期。

1)它將作為工作線程運行,而不是在UI線程上運行。

2)異步任務使您可以在任務完成之前或之后執行某些操作。 在從Internet連接或類似操作獲取數據后必須更新UI值時特別有用。 也適用於progressdialogs。 它是一種類(擴展AsyncTask),所以它有更多的結構,然后只是啟動一個線程。

3)是的,你可以。 這對你是否有用,是一個完全不同的問題。

暫無
暫無

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

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