标签:
1.首先写一个类继承AsyncTask 如:class DownloadTask extends AsyncTask<Parms, Process, Result>,
parms是执行asynctask传入的参数,如:task.execute("First parameter", "Second parameter", "Etc.")如:
AsyncTask<String,Void,Void> task = new AsyncTask<String,Void,Void> public Void doInBackground(String... params) { for (String parameter : params) { Log.i(TAG, "Received parameter: " + parameter); } return null; } };
process是 显示当前进度,如
public void onProgressUpdate(Integer... params) { int progress = params[0]; gestationProgressBar.setProgress(progress); }
Result是 当任务执行完毕后,对结果进行返回.如:
private class FetchItemsTask extends AsyncTask<Void,Void,List<GalleryItem>>{ @Override protected List<GalleryItem> doInBackground(Void... params) { return new FlickrFetchr().fetchItems(); } }
2.根据需要复写其中的方法,方法有以下几个:
onPreExecute() 这个方法会在后台任务开始执行之前调用,用于进行一些界面上的初始化操作,比如显示一个进度条对话框等。
doInBackground(Params...)这个方法中的所有代码都会在子线程中运行,我们应该在这里去处理所有的耗时任务。如果需要更新 UI 元素,可以调用 publishProgress(Progress...)方法来完成。
onProgressUpdate(Progress...)当在后台任务中调用了 publishProgress(Progress...)方法后,这个方法就会很快被调用,方法中携带的参数就是在后台任务中传递过来的。
onPostExecute(Result)当后台任务执行完毕并通过 return 语句进行返回时,这个方法就很快会被调用。返回的数据会作为参数传递到此方法中,可以利用返回的数据来进行一些 UI 操作.
3.如果想要启动这个任务,只需编写以下代码即可:new DownloadTask().execute();
标签:
原文地址:http://www.cnblogs.com/IT-lss/p/5661393.html