2013-03-28 12 views
5

Dlaczego powinienem wywołać metodę dismiss() dla AlertDialog zanim Activity zostanie zniszczony? Coś przecieka, ale co dokładnie? Dlaczego więc PopupWindow poradzi sobie z niszczeniem aktywności?Dlaczego mam odrzucać AlertDialog ręcznie w systemie Android?

znalazłem w źródłach Android, że każdy tworzy okno dialogowe z ostrzeżeniem:

Window w = PolicyManager.makeNewWindow(mContext); 

Co to znaczy? Dlaczego nie można po prostu użyć PhoneWindow uzyskanego z działania?

DODANO

Say, AlertDialog odwołuje kontekście Kontekst odwołuje nic, następnie GC powinien zbierać śmieci oba obiekty (ponieważ nie są wymienione z „zewnątrz”). Co jeszcze ma odniesienie do AlertDialog? Innymi słowy gdzie jest dokładnie wyciek pamięci?

Odpowiedz

0

Alertdialogs są dołączone do naszej działalności, używając identyfikatora, to Link pokazuje aktywność alertdialog, kiedy zostanie wyświetlony alertdialog to okno indywidualne (u ustawić anulować fałszywe następnie ur zmuszony do zarządzania nim), jeżeli jest to uruchomiony z powrotem i twoja aktywność zostanie zniszczona Każda pamięć powiązana z nim zostanie zwolniona, włącznie z identyfikatorem AlertDialog. Ten błąd pojawia się. Myślę, że teraz jest jasny.

+0

Czy AlertDialog jest wyświetlany w oddzielnej działalności? (Wątpię, ale muszę sprawdzić ...) –

Powiązane problemy