Akcje i deep linki
Dodawaj przyciski i otwieraj właściwy ekran
Akcje i deep linki to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.
Akcje i deep linki
Powiadomienia stają się przydatne, gdy wykonują jakieś działanie. Dotknięcie powiadomienia powinno otwierać właściwy ekran, a przyciski akcji powinny wykonywać szybkie zadania. Oba mechanizmy korzystają z PendingIntent.
Czym jest PendingIntent
PendingIntent to token przekazywany systemowi, który pozwala mu później wykonać Intent w imieniu aplikacji, nawet gdy aplikacja nie jest uruchomiona. Powiadomienia używają go do uruchamiania aktywności.
Tworzenie PendingIntent treści
Utwórz Intent dla ekranu, który ma zostać otwarty, opakuj go w PendingIntent i dołącz za pomocą setContentIntent, aby dotknięcie powiadomienia otwierało ten ekran.
val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
context, 0, intent,
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)Flaga zmienności
Od Androida 12 element PendingIntent musi określać FLAG_IMMUTABLE albo FLAG_MUTABLE. Preferuj FLAG_IMMUTABLE, chyba że system musi uzupełnić dane, jak w przypadku niektórych odpowiedzi.
Dodawanie przycisku akcji
Użyj addAction z ikoną, etykietą i elementem PendingIntent, aby dodać do powiadomienia przycisk reagujący na dotknięcie, na przykład „Odpowiedz” lub „Oznacz jako przeczytane”.
builder.addAction(
R.drawable.ic_reply,
"Reply",
replyPendingIntent
)Akcje uruchamiają komponenty
Element PendingIntent akcji może wskazywać aktywność, usługę lub odbiornik BroadcastReceiver. Przycisk „Oznacz jako przeczytane” często wskazuje odbiornik, dzięki czemu działa bez otwierania żadnego ekranu.
val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)Deep link do ekranu
Deep link otwiera określone miejsce wewnątrz aplikacji, a nie tylko ekran główny. W Navigation Compose można utworzyć element PendingIntent, który prowadzi do dokładnej trasy.
Tworzenie PendingIntent dla deep linku
Komponent Navigation udostępnia NavDeepLinkBuilder (lub element Intent deep linku z identyfikatorem URI) do tworzenia elementu PendingIntent wskazującego miejsce docelowe i argumenty.
val deepLinkPending = NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.chatScreen)
.setArguments(bundleOf("chatId" to "42"))
.createPendingIntent()Deep linki oparte na URI
Można także zarejestrować wzorzec URI w grafie nawigacji i utworzyć element Intent z tym elementem Uri. Dotknięcie powiadomienia przekieruje wtedy bezpośrednio do pasującego ekranu.
val intent = Intent(
Intent.ACTION_VIEW,
"myapp://chat/42".toUri(),
context, MainActivity::class.java
)Zachowywanie stosu wstecz
W przypadku deep linków zadbaj o sensowny stos wstecz, aby naciśnięcie przycisku Wstecz przenosiło do ekranu nadrzędnego zamiast zamykać aplikację. TaskStackBuilder lub konstruktor deep linków nawigacji obsługuje to za Ciebie.
Unikatowe kody żądań
Jeśli tworzysz wiele różnych elementów PendingIntent, nadaj każdemu osobny kod żądania (drugi argument). Identyczne elementy Intent z tym samym kodem są traktowane jako ten sam PendingIntent.
Szybkie sprawdzenie
Sprawdź, czy rozumiesz działanie akcji i deep linków.
Podsumowanie
Dodano interaktywność:
PendingIntentpozwala systemowi działać w imieniu aplikacji; użyjFLAG_IMMUTABLEsetContentIntentokreśla działanie po dotknięciu powiadomieniaaddActiondodaje przyciski wskazujące aktywności, usługi lub odbiorniki- Deep linki otwierają dokładne ekrany z zachowanym stosem wstecz
Dalej: uprawnienie do powiadomień przyznawane w czasie działania aplikacji.
Często zadawane pytania
Czy lekcja „Akcje i deep linki” jest bezpłatna?
Tak — pełny tekst „Akcje i deep linki” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Akcje i deep linki”?
Dodawaj przyciski i otwieraj właściwy ekran Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Akcje i deep linki”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Kanały powiadomień
- Tworzenie powiadomienia
- Akcje i deep linki
- Uprawnienie do powiadomień w czasie działania