Android自助餐之AsyncTask

Android自助餐之AsyncTask

查看全套目录

耗时操作可以使用AsyncTask

创建AsyncTask需要传递三个泛型:ParamsProgressResult

  1. Params启动任务执行的输入参数,比如HTTP请求的URL
  2. Progress后台任务执行的百分比
  3. Result后台执行任务最重返回的结果

使用AsyncTask需要重写的方法

  1. doInBackground()后台执行比较耗时的操作。
    不能直接操作UI;在执行过程中可以调用publishProgress()来更新任务的进度。
  2. doPlstExcute()相当于Handler处理UI的方式,可以再这里使用doInBackground方法的到的结果处理UI。
    在主线程执行。
  3. onProgressUpdate()可以使用进度条。
    在主线程执行。
  4. onPreExcute()在execute被调用后立即执行,一般用来在执行后台任务前对UI做一些标记。

需要注意的

  1. AsyncTask的实例只能在UI线程中创建。
  2. execute()只能在UI线程中调用。
  3. 不要手动调用:onPreExecute()doInBackground()onProgressUpdate()onPostExecute()
  4. 一个AsyncTask实例只能执行一次。
发布了69 篇原创文章 · 获赞 55 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/xmh19936688/article/details/51481539