나는 2 개의 출처로부터 온라인으로 자료를 얻을 필요가 있고 나는 그렇게하는 것처럼 각각의 진전 상황을 보여주고 싶다. 데이터가 수집되면 목록 뷰를 채울 수 있습니다.Android 로더를 데이지 체인 방식으로 연결하는 것은 좋지 않은 생각입니까?
현재 MyActivity는 MyDataLoader (AsyncTaskLoader를 확장하는 클래스)의 인스턴스를 만드는 LoaderCallbacks를 구현합니다. MyDataLoader의 loadInBackground 메서드에서 모든 소스의 데이터를 가져 와서 Sqlite db를 채 웁니다. 이 db는 전체적으로 사용할 수 있습니다.
문제는 내가 처리 과정에서 사용자에게 어떤 피드백도 제공하지 않는다는 것입니다.
그래서 필자는 getLoaderManager(). initLoader를 사용하여 로더를 데이지 체인 방식으로 연결하는 방법을 생각해 내 로더를 만든 다음 loadermanager의 로더를 한 번에 하나씩 반복합니다. 각 로더가 끝나고 onLoadFinished로 돌아 가면 진행 상황을 나타내는 progressDialog 텍스트를 설정할 기회가 있습니다.
이것은 나쁜 생각입니까? 더 간단하고 좋은 방법이 있습니까?
Throbbers는 항상이 작업을 수행하는 편리한 방법이지만, 미리로드를 수행해야한다는 것을 알고 있다면 '0 %'/ '50 %'/ '100 %'표시는 반드시 필요하지는 않습니다. 나쁜 생각. 즉, 리소스를 순차적으로로드 할 이유가 없습니다. – Basic
@alex, 완료되면 각 로더가 onLoadFinished 메서드를 개별적으로 호출합니까? 아니면 단일 호출이 있습니까? 아니면 모든 로더가 완료되면 다른 방법으로 최종 호출이 있습니까? – CarllDev
@CarllDev 로더는 완전히 독립적입니다. LoaderManager는 로더가로드를 완료 할 때마다 (onLoadFinished)이 호출됩니다 (이 'Loader'는 메소드의 첫 번째 인수로도 전달됩니다). 'LoaderManager'는 전체 라이프 사이클에서'Activity'의 Loader를 지속적으로 시작/정지/재설정/제거하므로 로더의 모든 *로드가 끝났을 때 다시보고하는 콜백 메서드를 사용하면 아무런 의미가 없습니다 . –