我在尝试理解Android中的Processes
和Threads
概念时感到困惑。下面我提几个问题。也许那些是愚蠢的问题,但请帮我回答这些问题并澄清我的疑虑。
1)如果我创建一个将运行的线程?在Main(UI)Thread
?
2)如果我创建的线程在后台作为worker Thread
运行,那么AsyncTask
的用途是什么(我的意思是它比线程更好)?
3)我们可以在AsyncTask中创建一个Thread吗?
答案 0 :(得分:7)
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
的{{1}}方法已经在另一个doInBackGround()
中运行,因此无需创建新的Thread
} Thread
。
答案 1 :(得分:6)
答案 2 :(得分:1)
1)它将作为工作线程运行,而不是在UI线程上运行。
2)异步任务使您可以在任务完成之前或之后执行某些操作。在从Internet连接或类似操作获取数据后必须更新UI值时特别有用。也适用于progressdialogs。 它是一种类(扩展AsyncTask),所以它有更多的结构,然后才启动一个线程。
3)是的,你可以。这对你来说是否非常有用,是一个完全不同的问题。