首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

AsyncTask(引见篇)

2012-09-11 
AsyncTask(介绍篇)private class MyTask extends AsyncTaskVoid, Void, Void { ...?AsyncTask的4个步骤

AsyncTask(介绍篇)

private class MyTask extends AsyncTask<Void, Void, Void> { ...?

AsyncTask的4个步骤

一个异步任务需要执行下面4个步骤

1. onPreExecute(),?该步骤在任务被执行之后立即由UI线程调用。

??? 这个步骤通常用来建立任务,在用户接口(UI)上显示进度条。

2. doInBackground(Params...), 该步骤由后台线程在onPreExecute()方法执行结束后立即调用。该步骤通常被用来执行耗时的后台计算。计算的结果必须由该步骤返回,并被传递到最后一个步骤中。该步骤也可以使用publishProgress(Progress...)来发布一个或多个进度单位(units of progress)。这些值将会在onProgressUpdate(Progress...)步骤中被发布到UI线程。

3. onProgressUpdate(Progress...), 该步骤由UI线程在publishProgress(Progress...)方法调用完后被调用。

????并未定义该方法执行的时机。该方法在后台进程计算仍在执行的时候,在UI上显示任何形式的进度。一般用于动态地显示一个进度条或者在文本框中显示log。

4. onPostExecute(Result), 由UI进程在后台计算结束后调用。后台计算的结果会被作为参数传递给这一步骤。

?

?

线程规则

为了能使该类正常执行,需要遵循下列规则:

- Task的实例必须在UI线程中被调用。

- execute(Params...)必须在UI线程中调用。

- 不要手动调用onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...)。

- Task只能被执行一次,如果想第二次执行会抛出异常。

热点排行