2010-12-19 13 views
0

現在のアクティビティとアプリケーションのサブクラスの間で通信するためにハンドラーを使用しています。 サブクラスは、Webサービス呼び出しを処理するスレッドを持っています。 サブクラスにはProgressDialogインスタンスもあります。アプリケーションがハンドラーからアプリケーションのアクティビティインスタンスを取得しています

httpコールの開始時にProgressDialogを表示し、コール終了時にダイアログを閉じたいとします。

これが起こるためには、HandlerからActivityにアクセスする必要があります。次に、setOwnerActivityを使用してDialogにアクティビティを割り当てます。

これは可能ですか?私はしようとし、ハンドラから活動を得ることができません。最大ハンドラは、メッセージを送信したスレッドです。

答えて

0

アプリケーションクラスは、実行中のアクティビティを認識しません。

実行可能なのは、アプリケーションクラスがアクティビティについて知っていることは、メモリの問題を引き起こす可能性があるため推奨されていないセッターメソッドによるものです。

0

msg.objMessageを使用してアクティビティのインスタンスを送信しようとしましたか?

Btw、私はあなたがAsyncTaskを使用する必要があります複雑なコードでそれを謎めくるのではないと思います。

+0

msg.objにアクティビティを渡すと、メモリリークが発生する可能性があります。 HTTPコールを提供する専用のスレッドを1つしか持たない方が、より良いアプローチであると思われます。リソースハンドラには、よりメンテナンスが必要です。 – Rahul

関連する問題