2017-10-09 21 views

답변

1

당신은

restartLoader(int id, Bundle args, LoaderCallbacks<D> callback) 

를 호출 그 것이다 재사용 같은 로더 객체입니다. 그러나 새로운 ID을 전달하면 새 Loader 개체가 생성됩니다. 이 방법은 문서 검사 this quote from the documentation에서 같이 작동합니다

새로운를 시작하거나이 관리자에서 기존 로더를 다시 시작, 거기에 콜백을 등록하고 (활동/단편 현재 시작되는 경우)로드를 시작. 동일한 ID를 가진 로더가 이전에 시작된 경우 새 로더가 작업을 완료하면 자동으로 제거됩니다. 콜백은 이전 로더가 삭제되기 전에 전달됩니다. ID이 문서 가이드에서 같은 중요한 문제이기 때문에

하지만, 이것에 깊이 파고 check the Loader Summary Here가 없습니다 :

는 로더에서 데이터를로드를 시작하려면 통화 중 initLoader() 또는 restartLoader(). 시스템은 동일한 정수 ID를 가진 로더가 이미 존재하는지 여부를 자동으로 결정하고 새 로더를 만들거나 기존 로더를 다시 사용합니다.

그래서 한마디로 당신은 다른 ID가 새로운 로더를 만듭니다 통과하지만 만약 당신이 같은 ID를 전달하면 동일한 로더를 사용합니다. 그러나 Cursors은 다시 사용하지 않는다는 것을 기억하십시오.