当一个线程执行的时候,可能会产生一些阻碍,这时用户就不能再执行当前线程的其他操作,可能需要等待其响应。于是,解决的办法就是把可能产生阻碍的步骤放在另一个线程上执行,这样当前线程的操作就可以不受影响。
例子:在某个软件中,点击某个按钮会向服务器发送请求,这时在网络传输中可能产生很多事件阻碍,所以就要把该操作放在另一个线程中,即异步操作。
代码:需要写一个类继承AsyncTask<Void,Void,Void>,再覆写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)
本文介绍了如何使用AsyncTask在Android应用中处理可能产生网络传输等阻碍的操作,通过将这些操作放入后台线程执行,确保主线程的流畅性和用户体验。通过AsyncTask的onPreExecute、doInBackground和onPostExecute方法的合理运用,可以实现异步操作的无缝集成。

1552

被折叠的 条评论
为什么被折叠?



