我有一个Loader,可以为我的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);
}
答案 0 :(得分:1)
RefreshLayout只显示进度指示器并调用应用程序的回调方法。你在回调方法中所做的与RefreshLayout无关。因此,如果您之前有任何已经运行的加载器,它们将一直运行直到完成。
使用相同的加载器对象加载数据总是好的。这样,在任何给定时间只能运行一个加载器对象。你不会同时运行许多装载程序对象。
此外,您已在refreshLayout.setRefreshing(false)
内使用onRefresh()
,因为当onRefresh()
完全执行时,Android会自行调用 <table cellspacing="0">
<thead>
<tr>
<th>bucketName</th>
<th>creationDate</th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bucket in listBucket">
<td>{{bucket.name}}</td>
<td>{{bucket.creationDate}}</td>
<td>
<a href="/ui/#/buckets" ng-click="getPolicy(bucket.name)"><span class="glyphicon glyphicon-info-sign"></span></a>
<a href="/ui/#/buckets" ng-confirm-click confirmed-click="deleteBucket(bucket.name)"><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
</tbody>
</table>
。
参考 - 来自文档 -
当用户进行滑动手势时,系统会显示进度指示器并调用应用程序的回调方法。您的回调方法负责实际更新应用的数据。
当用户按照响应刷新手势中所述触发刷新操作时,您无需调用setRefreshing()