2017-05-21 38 views
2

我已經在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()"); 
} 

回答

0

cancelLoad():嘗試取消當前負載任務。必須在進程的主線程 上調用。

因爲,onStopLoading()已經被調用,有什麼要取消了,這樣就決不會調用onCanceled()回調。

見,什麼文件說,有關的cancelLoad()

返回false返回值,如果任務無法被取消,通常是因爲它 已經正常完成[...]

因此,在你的情況下,它應該返回false,因爲它已經停止。

+0

@SumitTrehan有幫助嗎? –