android AsyncTask
PageTask task = new PageTask();
task.execute();
class PageTask extends AsyncTask<String, Integer, String> {
public PageTask(Context context){
}
@Override
protected String doInBackground(String... params) {
try{
//获取数据代码
} catch(Exception e) {
e.printStackTrace();
}
if(获取数据成功)
{
return "SUCCESS";
}
else
{
return "FAILURE";
}
}
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected void onPostExecute(String result) {
if(result.equals("SUCCESS"))
{
//更新UI
}
else
{
//错误提示
}
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(Integer... values) {
}
}
问题:
按下按钮联网获取数据绑定listview卡在那里,过一段时间才跳到下个画面。
解决方法:
1,可以把获取数据的操作放到doInBackground(String... params)里面做。
2,doInBackground(String... params)方法执行结束之后,自动调用onPostExecute(String result)方法,所以可以在这个方法里把取得的数据绑定到listview。
这样的做法就是不会按下按钮卡在那里,过一段时间才跳到下个画面,而是先跳到下个画面在取得数据,这样便提高了APP可用性。

浙公网安备 33010602011771号