116
Rozdział 3.
Jazda próbna
Jazda próbna aplikacji
Zapisz zmiany i ponownie uruchom aplikację
na urządzeniu lub emulatorze.
Jeśli będzie jedna aktywność
W takim przypadku kliknięcie przycisku
Wyślij wiadomość spowoduje, jak wcześniej,
przejście bezpośrednio do wybranej aplikacji.
Jeśli będzie więcej niż jedna aktywność
W tym przypadku Android wyświetli okno dialogowe z listą wszystkich
odszukanych aktywności, lecz nie zapyta, czy chcemy, by wybrana akacja
została wykonana raz, czy też ma już być wykonywana zawsze. Oprócz
tego okno ma tytuł określony na podstawie zasobu łańcuchowego.
To jest okno dialogowe wyboru aktywności, które
utworzyliśmy przy użyciu metody createChooser().
Jak widać, nie zawiera ono już opcji pozwalającej na
wykonywanie wybranej aktywności za każdym razem.
Tu nic się nie zmieniło
— Android bezpośrednio
uruchamia wybraną
aktywność.
¨
Określenie akcji
¨
Zapewnienie możliwości wyboru
Wiele aktywności i intencji
117
jesteś tutaj
Jeśli nie będzie ŻADNYCH pasujących aktywności
Jeśli na naszym urządzeniu nie będzie żadnych aktywności pozwalających
wysyłać wiadomości, to metoda
createChooser()
powiadomi nas o tym,
wyświetlając stosowny komunikat.
Jeśli chcesz samodzielnie uzyskać
podobne wyniki, to spróbuj uruchomić
swoją aplikację w emulatorze i wyłączyć
przy tym aplikację wiadomości.
P
: A zatem mogę uruchamiać
swoje aplikacje w emulatorze lub na
fizycznym urządzeniu. Które z tych
rozwiązań jest lepsze?
O
:
Każde z nich ma swoje wady i zalety.
W razie stosowania urządzenia
fizycznego testowane aplikacje zazwyczaj
wczytują się znacznie szybciej niż na
emulatorze. To rozwiązanie jest także
przydatne w przypadku pisania kodu,
który współpracuje z komponentami
sprzętowymi urządzenia.
Z kolei emulator pozwala testować aplikację
na wielu różnych wersjach Androida, na
ekranach o różnych wielkościach oraz na
urządzeniach o różnych specyfikacjach.
Pozwala zatem uniknąć konieczności
kupowania wielu różnych urządzeń.
Najważniejsze jest, by dokładnie
przetestować aplikację, używając kombinacji
urządzeń emulowanych i fizycznych,
zanim udostępnimy ją szerszemu gronu
odbiorców.
P
: Czy należy używać intencji
niejawnych czy jawnych?
O
:
Wszystko sprowadza się do
pytania, czy chcemy wykonać akcję,
używając konkretnej aktywności, czy
zależy nam wyłącznie na wykonaniu
operacji. Załóżmy, że chcemy wysłać
e-mail. Jeśli nie interesuje nas, której
aplikacji użytkownik użyje, byleby tylko
wiadomość została wysłana, to możemy
użyć intencji niejawnej. Natomiast jeśli
musimy przekazać intencję do konkretnej
aktywności w aplikacji, to powinniśmy
użyć intencji jawnej, aby jawnie określić
aktywność, do której intencja ma zostać
przekazana.
P
: Wspominaliście, że filtr intencji
aktywności oprócz akcji może także
określać kategorię. Czym różni się
kategoria od akcji?
O
:
Akcja określa, co dana aktywność
potrafi robić, natomiast kategoria
określa dodatkowe informacje na temat
wykonywanej czynności. Nie opisaliśmy
tych kategorii szczegółowo, gdyż
w praktyce rzadko kiedy pojawia się
potrzeba tworzenia intencji z kategoriami.
P
: Napisaliście, że w przypadku,
gdy nie ma aktywności, która
by mogła obsłużyć intencję, to
wywołanie metody
createChooser()
wyświetli komunikat. Co by się stało,
gdybym użył standardowego okna
do wyboru aktywności i przekazał
intencję niejawną w wywołaniu
metody
startActivity()
?
O
:
Jeśli nie ma aktywności pasujących
do intencji przekazanej w wywołaniu
metody startActivity(),
to zostanie zgłoszony wyjątek
ActivityNotFoundException. Istnieje
możliwość sprawdzenia, czy aktywności na
urządzeniu są w stanie odebrać intencję.
W tym celu należy wywołać jej metodę
resolveActivity() i sprawdzić
zwróconą przez nią wartość wynikową.
Jeśli jest nią null, to żadna aktywność na
urządzeniu nie będzie w stanie obsłużyć
intencji; w takim przypadku nie należy
wywoływać metody startActivity().
głupie pytania
Nie istnieją
¨
Określenie akcji
¨
Zapewnienie możliwości wyboru
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.