只是为了理解。
目前我有一个asynctask,就像这样:
String doInBackground(Void... params)
//Downloads a JSON and returns it to the onPostExecute().
void onPostExecute(String response)
//Parses the JSON which has an array of stuff and insert into sqlite.
Call changeCursosr and notifyDataSetChanged.
这是处理listview的插入和刷新的正确方法吗?目前,只要它碰到执行后,我就会遇到轻微的挂起。我应该解析&而是在doInBackground中插入数据?
答案 0 :(得分:0)
来自AsyncTask docs:
onPostExecute(Result),在后台计算完成后在UI线程上调用。后台计算的结果作为参数传递给此步骤。
由于它是在UI线程中调用的,因此它本质上是一个阻塞过程。所有繁重的工作都应该在doOnBackground完成。
答案 1 :(得分:0)
onPreExecute
和onPostExecute
不适合任何过程密集型内容。它们通常用于执行诸如启动和停止ProgressDialog
。
除了处理来自这些资源的数据外,你应该在doInBackground
内进行网络调用和数据库调用。