【发布时间】:2018-05-07 17:51:15
【问题描述】:
我对 android 有点陌生,我想知道是否有可能在我运行 notifyDataSetChanged() 之后,我可以在中间取消它。
例如我的情况:
如果 onResponse 得到 1 作为响应,我会 getPrice() 然后 getTransaction。
我会用当前代码设置一个 swipeRefreshListener :
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
getTransactions(view);
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new AccelerateInterpolator()); //and this
fadeIn.setDuration(1000);
swipeRefreshLayout.setRefreshing(true);
layoutBalance.setAnimation(fadeIn);
mActivities_RecyclerView.setAnimation(fadeIn);
swipeRefreshLayout.setRefreshing(false);
mActivities_RecyclerViewAdapter.notifyDataSetChanged();
}
});
我会记得 getTransaction,因为我需要从 API 获取最新的数据。 但是因为我使用改造入队的 API 调用将异步运行,所以在我从服务器获取实际数据之前,我的数据会先刷新。
所以,我的问题是我可以取消notifyDataSetChanged() 还是需要更改我的实现?
【问题讨论】:
-
添加一个条件来检查你现有数据模型的内容是否与新模型相等,如果相等则不需要做notifyDataSetChanged
-
@Venky 调用 api 的东西是排队的,所以即使我设置了布尔值。它会先运行。
标签: java android android-recyclerview retrofit