Android Loader中onCanceled()的目的是什么?

时间:2017-05-21 08:15:59

标签: android android-loadermanager android-loader

我已经在Loader()中实现了onStopLoader,我调用了cancelLoad()方法。但是,尽管有上述调用,onCanceled()仍未被调用。这次回调的目的是什么?

按下我的Activity中的主页按钮,我可以看到调用了Activity的onStop(),并且还调用了Loader的onStopLoading()。

@Override
public void onStopLoading() {
   super.onStopLoading();
   cancelLoad();
   Log.e(LOG_TAG, "onStopLoading()");
}

@Override
public void onCanceled(List<Earthquake> earthquakes) {
   super.onCanceled(earthquakes);
   Log.e(LOG_TAG, "onCancelled()");
}

1 个答案:

答案 0 :(得分:0)

  

cancelLoad():尝试取消当前加载任务。必须在主要上调用   这个过程的主线。

由于onStopLoading()已被调用,因此无法取消任何内容,因此永远不会调用回调onCanceled()

请参阅文档中有关cancelLoad()

的返回值的内容
  

如果无法取消任务,则返回false,通常是因为它   已经正常完成[...]

所以,在你的情况下,它应该返回false,因为它已经停止了。