Android AsyncTask理解
AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。
AsyncTask是抽象类,其结构图如下图所示:
AsyncTask定义了三种泛型类型 Params,Progress和Result。
Params 启动任务执行的输入参数,比如HTTP请求的URL。
Progress 后台任务执行的百分比。
Result 后台执行任务最终返回的结果,比如String。
子类必须实现抽象方法doInBackground(Params… p) ,在此方法中实现任务的执行工作,比如连接网络获取数据等。通常还应该实现onPostExecute(Result r)方法,因为应用程序关心的结果在此方法中返回。www.linuxidc.com需要注意的是AsyncTask一定要在主线程中创建实例。
AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,需要注意的是这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。在任务的执行过程中,这些方法被自动调用,运行过程,如下图所示:
相关推荐
dxyadc 2019-12-24
Miryou 2013-07-04
luoj 2011-05-24
老菜鸟自习室 2011-05-23
ustcrding 2011-04-23
TTHHVV 2011-09-28
sgafdsg 2011-09-21
TTHHVV 2011-09-17
Helene 2011-09-17
ustcrding 2011-09-17
best0power 2015-03-16
椎锋陷陈 2012-06-07
Android进阶 2019-06-26
猫耳山在天边 2019-06-26
wxuande 2019-06-21
AndroidGA 2017-03-20
housezhu 2015-03-16
西木 2015-03-05
ANDROIDWangWeiDa 2015-02-13