异步任务--AsyncTask
1.构建AsyncTask子类的参数
AsyncTask<Params,Progress,Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数:
Params:启动任务时输入参数的类型
Progress:后台任务执行中返回进度值的类型
Result:后台执行任务完成后返回结果的类型
2.构建AsyncTask子类的回调方法
-1-doInBackground:(第二)必须重写,异步执行后台线程将要完成的任务
-2-onPreExecute:(第一)执行后台耗时操作前被调用,通常用户完成一些初始化操作
步骤:1 新建一个类(MyAsyncTask)去继承(AsyncTask)
2 在MainActivity类中去启动这个异步任务(new 这个类对象),对象.execute()方法就可以执行任务了
注意事项: 1.必须在UI线程中创建AsyncTask的实例
2.必须在UI线程中调用AsyncTask的execute()方法
3.重写的四个方法是系统自动调用的,不应手动调用
4.每个AsyncTask只能被执行一次,多次调用将会引发异常
1.构建AsyncTask子类的参数
AsyncTask<Params,Progress,Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数:
Params:启动任务时输入参数的类型
Progress:后台任务执行中返回进度值的类型
Result:后台执行任务完成后返回结果的类型
2.构建AsyncTask子类的回调方法
-1-doInBackground:(第二)必须重写,异步执行后台线程将要完成的任务
-2-onPreExecute:(第一)执行后台耗时操作前被调用,通常用户完成一些初始化操作
-3-onPostExecute:(第三)当doInBackground()完成后,系统将会自动调用onPostExecute()方法,并将 doInBackground方法返回的值传给该方法。
-4-onProgressUpdate:在doInBackground()方法中调用publishProgress()方法 ,更新任务的执行进度后,就会触发 该方法。步骤:1 新建一个类(MyAsyncTask)去继承(AsyncTask)
2 在MainActivity类中去启动这个异步任务(new 这个类对象),对象.execute()方法就可以执行任务了
注意事项: 1.必须在UI线程中创建AsyncTask的实例
2.必须在UI线程中调用AsyncTask的execute()方法
3.重写的四个方法是系统自动调用的,不应手动调用
4.每个AsyncTask只能被执行一次,多次调用将会引发异常