
287
14
장
-
로더를 이용한 자동 백그라운드 실행
ChromeBookmarkAsyncHandler
를 통해 즐겨찾기가 삽입 또는 삭제되면 콘텐츠가 변경되고,
CursorLoader
는 자동으로
Cursor
를 재조회한다. 따라서 삽입과 삭제는 리스트에 자동으로 업
데이트된다.
14.3
커스텀 로더 구현
로더는 플랫폼에 의해 지원되기 때문에 일반적으로는 콘텐트 프로바이더와 함께 사용되지만, 다
른 데이터 소스는 커스텀 로더로 처리할 수 있다. 물론 이를 위해서는 더 많은 작업과 프레임워
크에 대한 더 깊은 이해가 필요하다. 커스텀 로더는 클라이언트의 관점에서 예상대로 작동하도
록 구현되어야 한다. 모든 자격을 갖춘 로더는 다음과 같은 기능을 지원해야 한다.
●
로더 생명주기
●
백그라운드 로딩
●
콘텐츠 관리
●
캐시된 결과 전달
NOTE
_
내부 클래스(일반적으로 액티비티 또는 프래그먼트)에서 참조된 외부 클래스 객체가 누수되지 않
도록, 커스텀 로더를 정적 또는 외부 클래스로 선언해야 한다. 만약 정적 또는 외부 클래스로 선언하지 않으면
onCreateLoader
에서 로더가 반환될 때
RuntimeException
이 발생한다.
14.3.1
로더 생명주기
로더에 대한 기본 클래스는
Loader
다.
Loader
는 로더의 상태를 담고 있는데, 이것이 데이터가
클라이언트