我使用AsyncTask从服务器获取html文件。但是当活动开始时,屏幕变为白色几秒钟,并在完全下载时显示数据。
我希望它首先显示活动的基本布局(例如操作栏),然后再显示下载的数据。所以我使用Thread
并解决了问题。(首先显示基本布局,稍后显示数据)
我一直在知道AsyncTask
是异步做事,但就我而言,它没有。(在doInBackground
中,我只做了网络连接)
AsyncTask真的在后台做事吗?
答案 0 :(得分:4)
AsyncTask真的做背景吗?
是
但请注意,AsyncTask
默认是序列化的,这意味着如果您分叉多个AsyncTask
个实例,它们将共享一个线程,第二个和后续任务将排队等待,直到第一个任务完成。您可以使用executeOnExecutor()
而非execute()
来运行任务来避免这种情况。
还有其他方法可能会误导AsyncTask
(例如,调用get()
)。