在Android应用的开发过程中,我们不可避免的要使用多线程,获取服务器数据、下载网络数据、遍历文件目录查找特定文件等等耗时的工作都离不开线程的知识。Android继承了Java的多线程体系,同时又实现了许多更加简易的API来操作线程。通过这些API,我们可以方便快捷的实现线程的创建、线程间的交互。我打算记下最近自己学习Android多线程机制时的学习笔记,一来可以供以后翻阅查看,二来为那些正疑惑与此的朋友提供一条结局的途径。
先大招说一下我想写的内容:
一、AsyncTask
二、Thread 与 Handler
三、HandlerThread
全部内容分为3篇Bolg。
下面正式开始第一部分吧!
AsyncTask
参考:http://developer.android.com/reference/android/os/AsyncTask.html
简单介绍:
AsyncTask这是一个很便捷也很简单的关于线程的API,它将比较耗时(几秒)的工作放在非UI线程中运行,然后将结果的处理放在UI线程中。整个过程不涉及到任何关于Thread和Handler的处理。
使用前的准备:
要想使用AsyncTask,首先得实现一个它的子类,并在子类中重写它的某些方法。为了便于了解,先来说说几个重要的方法:
onPreExecute()这是在AsyncTask对象调用了execute()后执行的方法,它在UI线程中调用,比如弹出一个进度条。
doInBackground(Params...)这是AsyncTask的灵魂,你的耗时工作可以放在这里面,在onPreExecute()调用后这个方法会得到执行。它是在非UI线程中执行的,它可以接收多个参数。关于参数的问题见后文。
时间: 2024-10-06 07:56:32