刚开始接触android,之前都是使用thread来访问网络或者执行一些耗时操作,最近学习使用了Asynctask异步加载,感觉使用Asynctask还是非常方便的,在这里发表一下使用的心得体会,希望能给大家带来帮助,同时也加深自己的理解:
其实使用Asynctask主要有以下几个步骤:
Step1:
首先创建一个类继承Asynctask,里面有三个参数,代表了你传进去的值的类型和要返回的值得类型,也可以全部设置成Void,然后实现里面几个必要的方法,主要的方法有三个,分别是:doInBackground、onPostExecute、onPreExecute
Step2:
首先介绍的是onPreExecute方法,此方法在耗时操作开始之前执行,可以初始化一些数据,也可以初始化一些控件(此方法中可以更新UI界面)
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
//执行准备工作,可以进行初始化
}
Step3:
然后介绍一下doInBackground方法,此方法主要是访问网络或者一些耗时操作(注意:此方法中不可以更新UI)。
protected 你要返回的值得类型 doInBackground(String... params) {
//String... params代表是传进的值得类型这里传入的是string类型的数据,
//params[0]代表获取传入的第一个数据
String urlstring=params[0];
//在这里你可以访问网络
return 返回的值;
}
Step4:
接下来就是接收doInBackground方法中返回的数据,我们要使用的方法是onPostExecute方法,此方法主要就是接收返回的数据,然后执行一些操作(此方法中可以更新UI)
protected void onPostExecute(数据类型 result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
//result就是返回的数据,可以在这里使用返回的数据
}
Step5:
上面基本上已经写好了Asynctask类,然后我们就可以在ui线程中使用我们写好的Asynctask类,使用的方法也很简单,直接new 你自己创建的类.execute(你要传进去的参数);这样就可以开始执行了