您的位置:首页 > 产品设计 > UI/UE

个人项目-密码管理-总结三(Android的AsyncTask执行完成后通知UI及下拉刷新)

2015-04-29 10:09 525 查看
在使用异步任务时,想做到任务执行完成之后,主界面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、下拉刷新参见博文/article/1562148.html

注意点:

ListView数据更新时,需要使用Adapter对象的notifyDataSetChanged()方法,不能使用ListView对象的refreshDrawableState()或者invalidate()invalidateViews()方法。

参考:http://stackoverflow.com/questions/9963691/android-asynctask-sending-callbacks-to-ui
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: