プロジェクトにはいくつかのActivityサブクラスがあり、それぞれがSOAPベースのWebサービスを呼び出し、結果を処理して表示します。SOAPシリアル化、呼び出し処理、および結果のさまざまなPOJOオブジェクトへの解析は、MyWebServiceクラスにカプセル化されます。このクラスは、AsyncTaskを介して実際のWebサービス呼び出しを実行します。
結果を呼び出し元のActivityサブクラスに戻すことができるようにするために、これらすべてのアクティビティーがWebServiceResultProcessorインターフェースを実装し、onPostExecuteから呼び出されるAsyncTaskのコールバックとして機能する単一の関数(processWebServiceResults)を定義する必要があると考えました。
また、Webサービスの呼び出し中にProgressDialogを表示したいと思います。そして、ここに私の質問があります。ProgressDialog(MyWebServiceまたはそのAsyncTaskのいずれかから)を表示できるようにするには、呼び出し元のアクティビティのコンテキストへの参照を渡す必要があります。また、AsyncTaskからコールバック関数を実行できるようにするには、同じオブジェクト参照を渡す必要がありますが、今回はWebServiceResultProcessorとして渡します。これは私にはコードの臭いのようで、同じオブジェクトを2回渡しますが、それを回避する方法はわかりません。インターフェースの代わりに、新しい基本クラスを作成して、Activityクラスを拡張し、拡張クラスからの継承を強制することもできますが、これは、ListActivityなどをこのMyWebServiceクラスの使用から除外することを意味します。
これを行うためのより良い方法はありますか?