我实现了一个Loader
,其中在onStopLoader
()中,我调用了cancelLoad
()方法。但是,尽管进行了上述调用,仍未调用onCanceled
()。回调的目的是什么?
在活动中按下主页按钮时,我可以看到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()");
}
最佳答案
cancelLoad():尝试取消当前的加载任务。必须在主叫
进程的线程。
由于onStopLoading()
已被调用,因此没有任何要取消的内容,因此永远不会调用回调onCanceled()
。
请参阅文档中有关cancelLoad()
返回值的内容
如果无法取消任务(通常是因为该任务),则返回false
已经正常完成[...]
因此,在您的情况下,它应该返回false,因为它已经停止了。
关于android - Android Loader中onCanceled()的作用是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44094643/