私はContentProvider
sqlite データベースからデータをフェッチし、 経由でロードするを持っていますLoader
。サーバーからデータをダウンロードしてで更新するService
を実行するによって更新されます。明確であることを願っていますが、念のため:AsyncTask
ContentProvider
ListFragment
ContentProvider
経由Loader
でデータを取得します。ContentProvider
で更新されService
ます。
ここで、アプリを初めて起動したときにローカルの sqlite データベースが空の場合、Service
. 私はむしろProgressBar
この瞬間にショーをしたいと思います(バーではなく、無限の糸車)。しかし、ProgressBar
データベースからの結果がない場合に a を表示すると、外部データベースにレコードがないこの特定のケースでサーバーからデータをフェッチした後でもそこに表示されます (私の場合は非常に頻繁に発生します)。そう:
データが初めてダウンロードされるとき、空でない結果が得られるまで、または仕事が完了するまで
Service
ProgressBar を表示したいと思います。ContentProvider
Service
ContentProvider
何も返されず、ジョブ が終了したService
(そして空の結果がフェッチされた)場合、アプリに「結果が見つかりません」と表示させたいと思います。
私の問題はおそらくListFragment
、Service
がまだ実行中であること、または ts ジョブが終了したことを に通知する方法です。Fragment
つまり、内部の呼び出しへの参照を保存するべきではありませんService
。の考えに反しContentProviders
ますね。では、どうやって?
注: ここでコードのどのフラグメントが役立つかはよくわかりません。そのため、特定のフラグメントを確認する必要があると思われる場合は、コメントで教えてください。ありがとう!