我有一个为我的RecyclerView下载数据的加载程序。我已将SwipeReftesh添加到此列表中,例如,向下滑动几次,我不知道会发生什么。以前的装载机会死掉还是会存储在内存中?看起来像这样:
refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
initializeDiscoverLoader();
refreshLayout.setRefreshing(false);
}
});
private void initializeDiscoverLoader() {
LoaderManager loaderManager = getLoaderManager();
loaderManager.initLoader(R.integer.MOVIE_LOADER_DISCOVER_ID, null, MovieActivity.this);
}
最佳答案
RefreshLayout仅显示进度指示器并调用应用程序的回调方法。您在回调方法中执行的操作与RefreshLayout没有关系。因此,如果您有任何先前的加载程序已在运行,它们将一直运行直到完成。
使用相同的加载器对象加载数据始终是一件好事。这样,在任何给定时间只能运行一个加载程序对象。您不会同时运行许多加载程序对象。
另外,您已经在refreshLayout.setRefreshing(false)
内使用了onRefresh()
,因为onRefresh()
完全执行后,Android会自行调用它。
参考-来自文档-
当用户做出滑动手势时,系统将显示进度指示器并调用应用程序的回调方法。您的回调方法负责实际更新应用程序的数据。
当用户通过响应刷新手势中所述的轻扫操作触发刷新时,无需调用setRefreshing()