682
Rozdział 16.
Zamykaj to, co otworzysz
Zamykanie kursora i bazy danych
Przedstawiając kursory we wcześniejszej części tego rozdziału, wspominaliśmy, że po
zakończeniu używania kursora należy zamknąć zarówno kursor, jak i bazę danych, aby
zwolnić przydzielone im zasoby. W kodzie naszej aktywności
DrinkActivity
używaliśmy
kursora do pobrania z bazy danych szczegółowych informacji o napoju, a kiedy już
zapisaliśmy te informacje w widokach, natychmiast zwalnialiśmy kursor i bazę danych.
W przypadku stosowania adaptera kursora (w tym także prostego adaptera kursora)
sprawy wyglądają jednak nieco inaczej — adapter wymaga bowiem, by kursor był cały czas
otworzony, na wypadek gdyby konieczne było pobranie dodatkowych danych. Przyjrzymy
się dokładniej, jak działa adapter kursora, aby zrozumieć, dlaczego może się to zdarzyć.
¨
Utworzenie kursora
¨
Utworzenie adaptera
Widok ListView zostaje wyświetlony na ekranie.
Podczas pierwszego wyświetlania listy zostanie ona dopasowana do wielkości ekranu.
Załóżmy, że znajduje się na nim wystarczająco dużo miejsca, by wyświetlić pięć elementów.
Kontrolka ListView prosi swój adapter o pięć pierwszych elementów.
ListView
To są elementy,
które zmieszczą się
w obszarze ekranu
zajmowanym przez
kontrolkę ListView.
Dla uproszczenia
założymy, że będzie
ich pięć, jednak
w rzeczywistości
najprawdopodobniej
będzie ich więcej.
ListView CursorAdapter
Cześć Adapterze, czy
możesz mi przekazać pięć
pierwszych elementów
danych?
Jasne.
Skoczę i zaraz
ci przyniosę.
Adapter kursora prosi swój kursor o odczytanie pięciu wierszy z bazy danych.
Niezależnie od tego, ile wierszy znajduje się w tabeli bazy danych, kursor musi odczytać tylko pięć
pierwszych.
Adapter
CursorAdapter
Kursor
Baza danych
1
2
3
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.