1. Handler + Thread
要求开发者掌握多线程的使用
同时掌握线程池的用法
2. AsyncTask
好处:不需要开发者掌握多线程
缺点:步骤较多
使用步骤:
1. 创建一个类,继承AsyncTask,
第一个参数:执行异步任务传入的参数,例如网址String
第二个参数:
第三个参数:子线程传递到主线程的消息类型 String
2. 重写doInbackground()方法,执行耗时操作
在子线程执行
3. 重写onPostExecute() 耗时操作返回的参数,更新到UI上
在Main线程执行
4. 执行异步任务
补充:
1. 如果需要在doInBackground()方法之前执行某些代码
重写onPreExecute()
更新进度:
1. 第二个参数:进度的值,通常是Integer
2. 在doInBackground()方法中调用publishProgress()
将耗时操作的中间进度发送到主线程
3. 重写onProgressUpdate(),接收中间进度
在主线程执行