线程,UI线程,工作线程,异步任务

Kri*_*hna 4 multithreading android asynchronous

我试图理解混淆ProcessesThreads概念的Android.下面我提几个问题.也许那些是愚蠢的问题,但请帮我回答这些问题并澄清我的疑虑.

1)如果我创建一个将运行的线程?在主(UI)Thread

2)如果我创建的线程作为工作者在后台运行Thread那么有什么用AsyncTask(我的意思是它比线程更好)?

3)我们可以在AsyncTask中创建一个Thread吗?

kal*_*pvs 7

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

它将在不在主线程中的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)?
Run Code Online (Sandbox Code Playgroud)

AsyncTask用于与主线程进行通信.例如,您正在从互联网下载文件,所以在这里您要更新您的...中的下载进度.对于Activity此AsyncTask更适合.您将使用onProgressUpdate()方法更新The Ui.您可以轻松地与UI线程进行通信.

 3)Can we create a thread in Async task?
Run Code Online (Sandbox Code Playgroud)

是的,你可以创建它,但它是无用的,因为AsyncTask有一个doInBackGround()已经运行在不同的方法,Thread所以不需要创建一个新的Thread内部AsyncTask.


Shr*_*ram 6

  1. 如果您在Activity中创建一个线程.它将作为一个单独的线程运行.默认情况下,Activity在UI线程中运行.它也称为主线程.
  2. 异步任务只不过是一个工作线程,它用于运行不会阻塞UI线程的后台操作.例如:下载文件.
  3. Asynctask本身就是一个separte线程,它有自己的生命周期.