Toiminnot ja syvälinkit
Lisätkää painikkeita ja avatkaa oikea näyttö.
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:
PendingIntentantaa järjestelmän toimia puolestasi; käytä lippuaFLAG_IMMUTABLEsetContentIntentmäärittää napautuksen toiminnonaddActionlisää painikkeita, jotka kohdistuvat Activityihin, Serviceihin tai vastaanottimiin- Syvälinkit avaavat tarkat näkymät säilyttäen takaisinpinon
Seuraavaksi: ilmoitusten suoritusajan käyttöoikeus.
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
- Ilmoituskanavat
- Ilmoituksen rakentaminen
- Toiminnot ja syvälinkit
- Ilmoitusten ajonaikainen käyttöoikeus