2010-12-19 127 views
0

我正在使用Handler在Current Activity和Application的子类之间进行通信。 子类有一个处理Web服务调用的线程。 子类也可能有ProgressDialog实例。Android从Handler获取应用程序中的Activity实例

我想在http调用开始时显示ProgressDialog,并在调用完成时关闭对话框。

为了做到这一点,我需要访问Handler的Activity。然后使用setOwnerActivity将活动分配给Dialog。

这可能吗?我试过了,不能从Handler那里得到活动。最大处理程序可以给出的是发送消息的线程。

回答

0

应用程序类不知道正在运行什么活动。

可以做的唯一事情就是让应用程序类知道活动是通过不建议使用的setter方法,因为它可能会导致内存问题。

0

您是否尝试过使用参数msg.obj使用Message来发送活动的实例?

顺便说一句,我认为你应该使用AsyncTask而不是复杂的代码。

+0

将活动传递给msg.obj可能导致内存泄漏,因此避免它。并且只有一个专用线程用于http调用似乎是更好的方法。源处理程序具有更多的维护。 – Rahul 2010-12-19 07:09:03

相关问题