1

私が尋ねる理由は、メインのアクティビティによって開始されたAsyncTaskの実行中に、ActionBarにProgressDialogスロバーを表示したいからです。

私の現在のソリューション(それは半ば機能します)はAsyncTaskLoaderを拡張します。そのクラスでは、onForceLoad()メソッドをオーバーライドし、ローダーのIDとクラス名をアプリケーションで管理されているマップ(ローダーIDでキー設定)に追加します。ローダーがマップに追加されると、アクションバーに読み込み中のスロバーが表示されます。LoaderCallbackのonLoadFinishedが呼び出されるたびに、IDを使用してマップからローダーを削除し、マップが空かどうかを確認します。マップが空の場合、私はロードスロバーの表示を停止します。

私が直面している問題は、たとえば、5つのローダーが実行されていて、ユーザーが[更新]をクリックして5つのローダーすべてが再起動した場合、すべてのローダーのonLoadFinishedが呼び出されないことです。マップが空になることはないため、読み込み中のスロバーが無期限に表示されます。これはローダーのスロットル方法と関係があると思いますが、よくわかりません。

4

0 に答える 0