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