Android Loader中的onCanceled()的用途

问题描述:

我已经在onStopLoader()中实现了一个Loader,我调用了cancelLoad()方法。但是,尽管上述呼叫,onCanceled()没有被调用。这个回调的目的是什么?Android Loader中的onCanceled()的用途

按下我的活动中的主页按钮,我可以看到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,因为它已经停止。

+0

@SumitTrehan有帮助吗? –