Android Academy · Oppitunti

Toiminnot ja syvälinkit

Lisätkää painikkeita ja avatkaa oikea näyttö.

Oppitunti 3/413 vaihetta

Toiminnot ja syvälinkit on ilmainen Android Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Android Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Android Academy-kurssilla on yhteensä 4 oppituntia.

Toiminnot ja syvälinkit

Ilmoituksista tulee hyödyllisiä, kun ne tekevät jotain. Napautuksen pitäisi avata oikea näkymä, ja toimintopainikkeiden pitäisi suorittaa nopeita tehtäviä. Molemmat perustuvat PendingIntent-olioon.

Mikä PendingIntent on

PendingIntent on järjestelmälle luovutettava tunniste, jonka avulla järjestelmä voi suorittaa Intent-olion puolestasi myöhemmin, vaikka sovellus ei olisi käynnissä. Ilmoitukset käyttävät sitä aktiviteetin käynnistämiseen.

Sisältöä avaavan PendingIntent-olion luominen

Luo avattavaa näkymää varten Intent, kääri se PendingIntent-olioksi ja liitä se komennolla setContentIntent, jotta napautus avaa kyseisen näkymän.

val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
    context, 0, intent,
    PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)

Muuttumattomuuslippu

Android 12:sta lähtien PendingIntent-olion on määritettävä joko FLAG_IMMUTABLE tai FLAG_MUTABLE. Suosi lippua FLAG_IMMUTABLE, ellei järjestelmän tarvitse täydentää tietoja, kuten joidenkin vastausten tapauksessa.

Toimintopainikkeen lisääminen

Lisää ilmoitukseen napautettava painike, kuten "Vastaa" tai "Merkitse luetuksi", käyttämällä addAction-metodia yhdessä kuvakkeen, tekstin ja PendingIntent-olion kanssa.

builder.addAction(
    R.drawable.ic_reply,
    "Reply",
    replyPendingIntent
)

Toiminnot käynnistävät komponentteja

Toiminnon PendingIntent voi kohdistaa Activityyn, Serviceen tai BroadcastReceiveriin. "Merkitse luetuksi" -painike kohdistetaan usein vastaanottimeen, jotta se toimii avaamatta mitään näkymää.

val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
    context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)

Syvälinkitys näkymään

Syvälinkki avaa sovelluksen sisältä tietyn kohteen, ei vain aloitusnäkymää. Navigation Composen avulla voit luoda PendingIntent-olion, joka siirtyy tarkalle reitille.

Syvälinkityksen PendingIntent-olion luominen

Navigation-komponentti tarjoaa kohteeseen ja argumentteihin kohdistuvan PendingIntent-olion luomiseen NavDeepLinkBuilder-rakentajan (tai URI:n sisältävän syvälinkki-Intent-olion).

val deepLinkPending = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.chatScreen)
    .setArguments(bundleOf("chatId" to "42"))
    .createPendingIntent()

URI-pohjaiset syvälinkit

Voit myös rekisteröidä URI-mallin navigointikaavioon ja luoda kyseisen Uri-olion sisältävän Intent-olion. Kun ilmoitusta napautetaan, navigointi siirtyy suoraan vastaavaan näkymään.

val intent = Intent(
    Intent.ACTION_VIEW,
    "myapp://chat/42".toUri(),
    context, MainActivity::class.java
)

Takaisinpinon säilyttäminen

Varmista syvälinkkejä käyttäessäsi järkevä takaisinpino, jotta Takaisin-painikkeen painaminen palauttaa käyttäjän ylemmän tason näkymään sen sijaan, että sovellus sulkeutuisi. TaskStackBuilder tai navigoinnin syvälinkkirakentaja hoitaa tämän.

Yksilölliset pyyntökoodit

Jos luot useita toisistaan poikkeavia PendingIntent-olioita, anna kullekin oma pyyntökoodi (toinen argumentti). Samanlaisia Intent-olioita, joilla on sama koodi, käsitellään samana PendingIntent-oliona.

Pikatarkistus

Testaa, miten hyvin ymmärrät toiminnot ja syvälinkit.

Kertaus

Lisäsit vuorovaikutteisuutta:

  • PendingIntent antaa järjestelmän toimia puolestasi; käytä lippua FLAG_IMMUTABLE
  • setContentIntent määrittää napautuksen toiminnon
  • addAction lisää painikkeita, jotka kohdistuvat Activityihin, Serviceihin tai vastaanottimiin
  • Syvälinkit avaavat tarkat näkymät säilyttäen takaisinpinon

Seuraavaksi: ilmoitusten suoritusajan käyttöoikeus.

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
36
Oppitunnit
152

Usein kysytyt kysymykset

Onko oppitunti ”Toiminnot ja syvälinkit” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Android Academy-oppimispolun 3 oppituntia, myös oppitunnin “Toiminnot ja syvälinkit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Android Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Toiminnot ja syvälinkit”?

Lisätkää painikkeita ja avatkaa oikea näyttö. Harjoittelet Android Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Android Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Android Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Toiminnot ja syvälinkit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Android Academy-oppitunnilla?

Kyllä. Jokainen Android Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Ilmoituskanavat
  2. Ilmoituksen rakentaminen
  3. Toiminnot ja syvälinkit
  4. Ilmoitusten ajonaikainen käyttöoikeus
← Takaisin: Android Academy