在使用异步任务时,想做到任务执行完成之后,主界面UI再执行相应的代码。用途可以在网络查询之后,将查询到的内容更新UI。
可以根据如下步骤来实现:
1、新建一个接口
public interface OnTaskCompleted{
void onLoadPasswordAllTaskCompleted();
}
2、将要使用更新UI的Activity实现这个接口
public YourActivity implements OnTaskCompleted{
// your Activity
}
并实现onTaskCompleted()方法,
方法中的内容即在任务完成后调用的步骤
@Override
public void onLoadPasswordAllTaskCompleted() {
adapterShowPasswordList.notifyDataSetChanged();
}
3、在AsyncTask中设置listener
public YourTask extends AsyncTask<Object,Object,Object>{ //change Object to required type
private OnTaskCompleted listener;
public YourTask(OnTaskCompleted listener){
this.listener=listener;
}
// required methods
protected void onPostExecute(Object o){
// your stuff
listener.onLoadPaswordAllTaskCompleted();
}
}
4、下拉刷新参见博文http://blog.csdn.net/guolin_blog/article/details/9255575
注意点:
ListView数据更新时,需要使用Adapter对象的notifyDataSetChanged()方法,不能使用ListView对象的refreshDrawableState()或者invalidate()invalidateViews()方法。