异步操作

当一个线程执行的时候,可能会产生一些阻碍,这时用户就不能再执行当前线程的其他操作,可能需要等待其响应。于是,解决的办法就是把可能产生阻碍的步骤放在另一个线程上执行,这样当前线程的操作就可以不受影响。

例子:在某个软件中,点击某个按钮会向服务器发送请求,这时在网络传输中可能产生很多事件阻碍,所以就要把该操作放在另一个线程中,即异步操作。

代码:需要写一个类继承AsyncTask,再覆写Void doInBackground方法,在该函数中写要执行的可能产生阻碍的操作。执行该线程在主线程中使用该类的一个对象的excute方法。

onPreExecute  该方法运行在UI线程中,可以对一些UI控件进行操作

doInBackground  该方法并不运行在UI线程中,所以不能对UI控件进行修改

在该方法内可以调用publishProgress(i)发布一些更新到UI线程。

onProgressUpdate (i)该方法在UI线程中,可实现更新(如修改进度条),publishProgress的参数就是传到这里。

onPostExecute  该方法在doInBackground  运行之后运行

AsyncTask<A,B,C>

C  doInBackground (A...Param)   A是参数类型,...的意思是可以传入多个A类型的数,Param是一个数组,保存参数。C是返回值类型

onProgressUpdate(B)

你可能感兴趣的:(Android)