0

只是为了理解。

目前我有一个像这样工作的异步任务:

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.

这是处理列表视图的插入和刷新的正确方法吗?目前,每当它执行后,我都会遇到轻微的挂起。我应该在 doInBackground 中解析和插入数据吗?

4

2 回答 2

0

从 AsyncTask文档

onPostExecute(Result),在后台计算完成后在 UI 线程上调用。后台计算的结果作为参数传递给该步骤。

由于是在UI线程中调用的,本质上是一个阻塞进程。所有繁重的工作都应该在 doOnBackground 中完成。

于 2011-12-21T01:41:27.170 回答
0

onPreExecute并且onPostExecute不适合任何流程密集型的事情。它们通常保留用于启动和停止ProgressDialog.

doInBackground除了处理来自这些资源的数据之外,您还应该在内部进行网络调用和数据库调用。

于 2011-12-21T01:50:44.160 回答