Activity i Callable

0

witam wszystkich,

mam problem/pytanie ... Mam sobie aplikację (wiele activity..) w jednym z activity, po kliknięcie w button w przypadku braku połączenia internetowego, metoda która ma zostać wykonana jest opakowana w obiekt interfejsu Callable:

Callable<void> callable = new Callable<void>() {
public Void call() {
isHierarchyValid(itemList);
return null;
}
};
NoNetworkTool.get().addInvoke(callable);

Nestępnie wychodzę z tego activity do innego/innych.

Klasa NoNetworkTool trzyma w liście obiekty klasy Callable, klasa ta jest singletonem. W przypadku odzyskania internetu , dla wszystkich obiektów z listy jest wołana metoda call() .

Generalnie rozwiązanie to działa. Jednakże obawiam się problemów.. wiem że android potrafi zniszczyć activity (nie aktywne) w razie potrzeby.. może mnie ktoś oświecić jak bardzo nie dobre jest to rozwiązanie...

lub (w co wątpię) że powinno działać...

1

Generalnie zasada jest taka, że referencja do aktywności nie powinna być trzymana w obiektach, które mogą żyć dłużej niż ona sama, Twój callable posiada referencję do aktywności zatem jest możliwy wyciek pamięci. Powinienieś w metodzie onDestroy() czyścić referencję do obiektu callable.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0