2010-12-19 12 views
0

Ich verwende Handler für die Kommunikation zwischen der aktuellen Aktivität und einer Unterklasse der Anwendung. Unterklasse hat einen Thread, der Web-Service-Aufrufe verarbeitet. Unterklasse kann auch eine ProgressDialog-Instanz haben.Android erhält Activity-Instanz in Anwendung von Handler

Ich möchte ProgressDialog zeigen, wenn der HTTP-Aufruf gestartet wird und den Dialog abbrechen, wenn der Anruf beendet ist.

Dazu muss ich auf Aktivität von Handler zugreifen. Weisen Sie dann mit setOwnerActivity Aktivität dem Dialog zu.

Ist das möglich? Ich habe versucht und kann keine Aktivität von Handler bekommen. Der maximale Handler kann einen Thread geben, der eine Nachricht gesendet hat.

Antwort

0

Die Anwendungsklasse weiß nicht, welche Aktivität ausgeführt wird.

Das einzige, was getan werden kann, ist, dass die Anwendungsklasse über die Aktivität durch eine Setter-Methode informiert wird, was nicht empfohlen wird, da dies zu Speicherproblemen führen kann.

0

Haben Sie versucht, die Instanz der Aktivität mit einer Message mit Parameter msg.obj zu senden?

Btw, ich denke, dass Sie eine AsyncTask verwenden sollten, anstatt es mit komplizierten Code zu rätseln.

+0

Die Übergabe von activty an msg.obj kann zu einem Speicherleck führen, wodurch es vermieden wird. und mit einem dedizierten Thread, nur um HTTP-Aufrufe zu dienen scheint besser Ansatz sein. Ocource Handler kommt mit mehr Wartung. – Rahul