736
Rozdział 17.
Jazda próbna
P
:  Kiedyś już napisałem kod, który 
po  prostu wykonywał operacje na 
bazie  danych, i wszystko działało 
świetnie. Czy takie operacje na bazie 
naprawdę trzeba wykonywać w tle?
O
: 
W przypadku naprawdę małych
baz danych, takich jak nasza, czas
dostępu do bazy danych będzie zapewne
niezauważalny. Ale będzie to wynikało
wyłącznie z małej wielkości bazy. Jeśli baza
będzie większa, albo jeśli uruchomimy
aplikację na wolniejszym urządzeniu, czas
dostępu do bazy zacznie mieć większe
znaczenie. Dlatego
owszem
kod
operujący na bazie danych zawsze powinien
być wykonywany w tle.
P
:  Przypomnijcie mi: dlaczego 
aktualizowanie widoków z wątku 
wykonywanego w tle jest błędem?
O
: 
Najkrócej rzecz ujmując, taka próba
skończyłaby się zgłoszeniem wyjątku. Rozwijając
nieco ten temat, należałoby stwierdzić, że
wielowątkowe interfejsy użytkownika
niezwykle podatne na występowanie błędów.
Android eliminuje ten problem, uniemożliwiając
stosowanie takich rozwiązań.
P
:  Które fragmenty kodu 
wykonującego operacje na bazie 
danych są najwolniejsze?
O
: 
Nie sposób tego ogólnie określić. Jeśli
używana baza danych ma złożoną strukturę,
to jej pierwsze otwarcie może zająć sporo
czasu, bo będzie wymagało utworzenia
wszystkich tabel. Także wykonanie
złożonych zapytań może zajmować bardzo
dużo czasu. Ogólnie rzecz biorąc, należy
podejść do zagadnienia ostrożnie i wszystkie
operacje na bazie danych wykonywać w tle.
P
:  Jeśli odczytanie  danych z bazy 
zajmuje kilka sekund, to co zobaczy 
użytkownik?
O
: 
Użytkownik najpierw zobaczy puste
widoki, a dopiero po jakimś czasie zostaną
one wypełnione danymi.
P
:  Dlaczego w zadaniu AsyncTask 
umieściliście  kod wykonujący operacje 
na  bazie danych z tylko jednej 
aktywności?
O
: 
Chcieliśmy Ci pokazać sposób
korzystania z klasy AsyncTask na jednej
aktywności w ramach przykładu. W praktyce
tak samo należy wykonywać wszystkie
operacje na bazach danych we wszystkich
aktywnościach.
głupie pytania
Nie istnieją
Jazda próbna aplikacji
Kiedy uruchomimy aplikację i przejdziemy do napoju, możemy
go oznaczyć jako ulubiony, klikając pole wyboru
Ulubiony.
Kliknięcie tego pola wciąż modyfikuje zawartość kolumny
FAVORITE
bazy danych, jednak tym razem kod odpowiedzialny
za tę operację jest wykonywany w wątku działającym w tle.
Nasza aplikacja zapisuje
dane w bazie danych, jednak
tym razem robi to w wątku
wykonywanym w tle.
W idealnym świecie cały kod związany
z operacjami na bazach danych powinien
być wykonywany w tle. My nie będziemy
zmieniać kodu pozostałych aktywności
aplikacji Coffeina w taki sposób,
lecz nic nie stoi na przeszkodzie,
byś Ty to zrobił.

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.