ContentProvider
이 있는데이 파일은 sqlite 데이터베이스에서 데이터를 가져 와서 Loader
을 통해로드합니다. 서버에서 데이터를 다운로드하고 ContentProvider
에서 업데이트하려면 AsyncTask
을 실행하는 Service
으로 업데이트되었습니다. 나는 그것을 확신 할 것이 아니라 분명 희망 :ContentProvider, Loader 및 ProgressBar
ListFragment
는
가ContentProvider
Service
로 업데이트됩니다,Loader
를 통해ContentProvider
에서 데이터를합니다. 내 로컬 SQLite 데이터베이스 내가 응용 프로그램을 실행 처음 비어있을 때
이제, 그들이 현재 Service
를 통해 다운로드되고있어, 비록이 이벤트가 없습니다 보여줍니다. 차라리이 순간에 ProgressBar
이 표시됩니다 (막대가 아닌 무한 회전 휠). 그러나 데이터베이스에서 결과가 없을 때 ProgressBar
을 표시하면 외부 데이터베이스에 레코드가없는 경우에도 서버에서 데이터를 가져온 후에도 해당 데이터베이스에 결과가 표시됩니다. 그래서 :
는 데이터가
ContentProvider
까지의 ProgressBar을 보여주고 싶은Service
I 에 의해 처음으로 다운로드되면 비어 있지 않은 결과 또는Service
그것이 직업 완료 제공합니다.- 는
ContentProvider
아무것도 을 반환 할 때와Service
는 I 앱이 "검색 결과를 찾을 수"를 표시하지 싶습니다 작업 (및 가져온 빈 결과) 의 을 완료했다.Service
이 여전히 실행되고있는ListFragment
를 통지하거나 TS 작업을 완료되었는지하는 방법 :
내 문제는 아마입니다. 내 말은 - 나는에있는 참조를 저장하지 말아야한다. Fragment
Service
. ContentProviders
의 아이디어에 어긋나지? 그래서 방법?
참고 : 어떤 코드 조각이 도움이 될지 잘 모르겠다. 그렇다면 특정 조각을 볼 필요가 있다고 생각하면 의견을 말해주세요. 감사!
대단히 감사합니다. 나중에 오늘 해결책을 찾아 보겠습니다. 그러나 둘 다 매우 유망한 것으로 보입니다. –
아직 작성하지 않았지만 두 번째로 충분하지 않은 것으로 보입니다. 하지만 'BrodcastReceiver'는 내가 찾고있는 것처럼 보입니다. 고마워요! –
LocalBroadcastManager는이 특정 작업에 더 좋습니다 : http://stackoverflow.com/questions/8802157/how-to-use-localbroadcastmanager. 매력처럼 작동합니다 :) –