我使用AsyncTask
来请求大量数据。收到后,数据将在onPostExecute
方法内处理。处理数据可能需要一段时间。
根据我的理解,AsyncTask
是异步的,并且独立于用户界面。
onPostExecute
?Activity
方法内的处理时间过长,onPostExecute
冻结是否正常?Activity
不会冻结onPostExecute
?答案 0 :(得分:2)
database , network ,parsing
方法中执行所有数据源操作,例如(doInBackground
response.etc)。onProgressUpdate
onPostExecute
执行任何解析操作。尝试在parsed
中过滤或data
postexecute
(较轻的数据)。答案 1 :(得分:1)
为什么我的Activity会冻结onPostExecute?
根据您的帖子,您需要执行一些耗时的操作 PostExecute方法。在PostEecute上运行在UI线程上,所以它是 好吧你的UI被冻结了。
如果onPostExecute方法内的处理太长,Activity是否正常冻结?
是的,是的。您应该在doInBackground方法中执行长操作 (非UI线程)
如何使我的Activity不会冻结onPostExecute?
尝试将长时间操作转移到doInBackground方法和 在PostExecute中,只需根据响应更新UI,即可获得 doInBackground方法中的操作。
答案 2 :(得分:0)
确保在doInBackground
方法中使用AsynTask
方法。
答案 3 :(得分:0)
在doInBackground
中查看您需要绑定的长时间运行任务,您无法绑定UI控件,例如Button
,ImageView
等。doInBackground
完成后onPostExecute
你可以绑定所有需要控制,确保这里[onPostExecute
]你没有运行另一项任务。