2013-03-28 5 views
5

Warum sollte ich die Methode "abliss()" für AlertDialog aufrufen, bevor die Aktivität zerstört wird? Etwas leckt, aber was genau? Warum kann PopupWindow dann die Aktivität zerstören?Warum sollte ich AlertDialog manuell in Android ablehnen?

Ich habe in Android Quellen gefunden, dass jeder Alarm Dialogfenster erstellt:

Window w = PolicyManager.makeNewWindow(mContext); 

Was bedeutet das? Warum kann PhoneWindow nicht einfach aus Aktivitäten bezogen werden?

ADDED

Sprich Alertdialog Kontext verweist, Kontext nichts verweist, dann GC sollte Müll beide Objekte sammeln (wie sie nicht von ‚außen‘ bezeichnet werden). Was hat sonst noch einen Hinweis auf AlertDialog? Mit anderen Worten, wo ist genau Speicherleck?

Antwort

0

Alertdialogs unserer Tätigkeit gebunden sind, eine ID verwenden, diese Link zeigt die Aktivität eines Alertdialog, sobald das Alertdialog es ein separates Fenster angezeigt wird (u gesetzt Abbrechen falsch dann um es zu verwalten ur gezwungen), wenn es läuft auf dem Rücken und Ihre Aktivität wird zerstört Jeder damit verbundene Speicher wird freigegeben, einschließlich der ID des AlertDialogs. Das ist der Fehler taucht auf. Ich denke, es ist jetzt klar.

+0

Wird AlertDialog in einer separaten Aktivität angezeigt? (Ich bezweifle es, aber müssen überprüfen ...) –

Verwandte Themen