【发布时间】:2015-01-10 22:47:57
【问题描述】:
代码如下:
public void onRefresh() {
MyDDPState.getInstance().getItems(null, new DDPListener() {
@Override
public void onResult(Map<String, Object> json) {
Log.d(TAG, "refreshed");
if (json.get("result") == null) {
/*
* Result is null action
*/
Log.d(TAG, "Null");
swipeLayout.setRefreshing(false);
return;
}
List<Map<String, Object>> temp = (ArrayList) json.get("result");
Log.d(TAG, temp.toString());
MyDDPState.getInstance().initItems(temp);
Log.d(TAG, "converted" + MyDDPState.getInstance().getItems().toString());
Log.d(TAG, swipeLayout.toString());
Log.d(TAG, "Finished refreshing");
swipeLayout.setRefreshing(false);
Log.d(TAG, "Refresh closed");
}
});
}
swipeLayout 是指持有 SwipeRefreshLayout 的类中的私有变量。在回调中,我尝试调用 setrefreshing(false) 来摆脱进度指示器,但是这个调用会挂起异步函数。除“刷新关闭”日志外,所有其他日志均正常工作。
出于某种原因,我认为由于我正在使用的库,DDP 侦听器中的错误也没有被记录,所以我无法跟踪它。在 DDP 调用之外调用时,swipeLayout.setRefreshing 工作正常。
【问题讨论】:
-
挂起是什么意思?
-
异步调用类型只是停止运行或退出。
-
应用程序崩溃了吗?
-
它不会崩溃,异步调用只是停止
-
我刚刚尝试在 getItems 调用的外部添加一个 setRefreshing(false) 调用,当我这样做时,回调传递到 Refresh closed
标签: android meteor refresh swiperefreshlayout ddp