Android自助餐之AsyncTask
Posted -_-void
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android自助餐之AsyncTask相关的知识,希望对你有一定的参考价值。
android自助餐之AsyncTask
[toc]
耗时操作可以使用AsyncTask
。
创建AsyncTask需要传递三个泛型:Params
、Progress
、Result
。
Params
启动任务执行的输入参数,比如HTTP请求的URLProgress
后台任务执行的百分比Result
后台执行任务最重返回的结果
使用AsyncTask需要重写的方法
doInBackground()
后台执行比较耗时的操作。
不能直接操作UI;在执行过程中可以调用publishProgress()来更新任务的进度。doPlstExcute()
相当于Handler处理UI的方式,可以再这里使用doInBackground方法的到的结果处理UI。
在主线程执行。onProgressUpdate()
可以使用进度条。
在主线程执行。onPreExcute()
在execute被调用后立即执行,一般用来在执行后台任务前对UI做一些标记。
需要注意的
AsyncTask
的实例只能在UI线程中创建。execute()
只能在UI线程中调用。- 不要手动调用:
onPreExecute()
、doInBackground()
、onProgressUpdate()
、onPostExecute()
。 - 一个
AsyncTask
实例只能执行一次。
以上是关于Android自助餐之AsyncTask的主要内容,如果未能解决你的问题,请参考以下文章
从片段调用 Android AsyncTask 没有调用其成员 - doInbackground、onpreexecute、onpostexecute
android中AsyncTask中的ProgressDialog