2017-05-21 13 views
2

나는 onStopLoader()에서 cancelLoad() 메소드를 호출 한 Loader을 구현했습니다. 그러나 위의 호출에도 불구하고 onCanceled()이 호출되지 않습니다. 이 콜백의 목적은 무엇입니까?안드로이드 로더에서 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()"); 
} 

답변

0

cancelLoad() : 현재로드 작업을 취소하는 시도. 프로세스의 스레드 스레드에서 호출되어야합니다. onStopLoading()가 이미 호출, 이후

는 더 이상 취소 할 수있는 것도, onCanceled()가 호출되지 않습니다 따라서 콜백이 없습니다.

전형적으로 이미 정상적으로 완료 되었기 때문에 작업이 취소 할 수없는 경우 문서가 거짓 cancelLoad()

반환의 반환 값에 대해 말하는 것을 참조, [...]

그래서, 당신의 경우 이미 정지했기 때문에 false를 리턴해야합니다.

+0

@SumitTrehan 도움이 되었습니까? –