Wiele aktywności i intencji
113
jesteś tutaj
Co się dzieje w momencie wywołania
metody createChooser()?
Oto, co się stanie w momencie wykonania dwóch poniższych wierszy kodu:
Intent chosenIntent = Intent.createChooser(intent, ”Wysyłanie wiadomości...”);
startActivity(chosenIntent);
Zostaje wywołana metoda
createChooser().
W jej wywołaniu przekazywana jest intencja
określająca akcję, którą chcemy wykonać,
oraz informacje na temat typu danych
MIME.
CreateMessageActivity
Android
createChooser()
Android sprawdza, które aktywności
mogą obsłużyć tę intencję,
sprawdzając ich ltry intencji.
Porównywane są akcja, typ danych
oraz kategoria, obsługiwane przez
poszczególne aktywności.
CreateMessageActivity
Android
Widzę, że muszę
utworzyć okno dialogowe
wyboru aktywności, które
obsługują akcję SEND i operują
na danych typu text/plain.
Jeśli aktywność może zostać obsłużona
przez więcej niż jedną aktywność,
to Android wyświetla okno dialogowe
i prosi użytkownika o wybór jednej
spośród odnalezionych aktywności.
Tym razem użytkownik nie będzie miał
możliwości określenia, że wybrana
aktywność ma być używana za każdym
razem — w oknie dialogowym zostanie tylko
wyświetlony tytuł „Wysyłanie wiadomości…”.
Jeśli nie uda się znaleźć żadnych pasujących
aktywności, to Android i tak wyświetli okno
dialogowe, a dodatkowo także komunikat
informujący użytkownika, że nie ma aplikacji,
które mogłyby obsłużyć wybraną akcję.
Android
Użytkownik
CreateMessageActivity
Hej, użytkowniku! Powiedz mi,
proszę, której aktywności
chciałbyś użyć tym razem?
Intencja
ACTION_SEND
type: “text/plain”
message:”Cześć!”
1
2
3
¨
Określenie akcji
¨
Zapewnienie możliwości wyboru
114
Rozdział 3.
Co się dzieje?
Historii ciąg dalszy
Aktywność prosi
system o uruchomienie
aktywności określonej
w intencji.
Android uruchamia
aktywność określoną
w intencji i przekazuje
do niej tę intencję.
Kiedy użytkownik wybierze,
której aktywności chce użyć,
Android zwraca nową intencję
jawną skierowaną do wybranej
aktywności.
Ta nowa intencja zawiera wszelkie
informacje dodatkowe, które
były zapisane w początkowej
aktywności, na przykład
wszystkie teksty.
Android
Użytkownik
CreateMessageActivity
Ona chce użyć aktywności
WybranaAktywność. Proszę bardzo,
to odpowiednia intencja.
Android
CreateMessageActivity
Dzięki za intencję,
Androidzie. A czy możesz
teraz uruchomić tę
intencję?
Android
CreateMessageActivity
WybranaAktywność
Intencja
WybranaAktywność
message:”Cześć!”
Intencja
Do: WybranaAktywność
message:”Cześć!”
Intencja
Do: WybranaAktywność
message:”Cześć!”
4
5
6
¨
Określenie akcji
¨
Zapewnienie możliwości wyboru
Jasne!
Proszę bardzo.
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.