Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertOddvar Klausen Endret for 7 år siden
1
Android-Programmering Våren 2015
2
Oversikt – PendingIntents Rollen til PendingIntents Vanlig bruk Deling Sending
3
Rollen til PendingIntents Gjør sirkelen komplett Intenter gjør det mulig og benytte komponenter fra andre programmer Trenger en sikker måte og deligere actions til disse PendingIntents Innkapsler en intent, og en action for å utføre den
4
Vanlig bruk Krever 3 enkle steg Lage en Intent getXXX for og pakke inn Intent i en PendingIntent (Egne metoder for hver av standardkomponentene) Sende PendingIntenten til ønsket komponent Notifications, widgets, servicer, activities
5
Innholdet i en PendingIntent PendingIntent innkapsler alt for komponenten som oppretter den Intent Assosiert action Identitet og rettigheter til komponenten som opprettet den Komponentens package
6
Synlighet Innholdet i en PendingIntent er ikke synlig for andre applikasjoner Deles ikke utenfor komponenten som laget den Lagres i Android systemet PendingIntent objektet inneholder bare en token til innholdet
7
Deling PendingIntent, som en referanse, tillater deling Like PendingIntents får samme referanse Begge må komme fra samme applikasjon Blir sett på som like ved hjelp av Intent.filterEquals
8
Flags Flags i getXXX sier hva som skal skje med valg av referanse Kan gjøre noen endringer til en eksisterende Intent Kan lage nye referanser selv om de matcher en tidligere Kan gjøre tidligere PendingIntents ugyldige
9
Flags FLAG_UPDATE_CURRENT Hvis eksisterer, oppdater med extras fra den nye Intenten FLAG_NO_CREATE Ikke lag en ny Returner en eksisterende, eller returner null FLAG_CANCEL_CURRENT Lag en ny Hvis den matcher en eksisterende, kanseller denne FLAG_ONE_SHOT Kan bare sende en gang Kan ha flere referanser Hvis den matcher en eksisterende som ikke har flagget, lag en ny Begge er gyldige
10
Sende PendingIntent Utføre oppgaven i en PendingIntent Kalle send metoden, sender Intenten den inneholder Finnes flere overload metoder Kan gjøre noen modifiseringer av Intenten som sendes Sette verdier som ikke er satt tidligere
11
Oppsumering Pakker inn en Intent og en assosiert action Kjøres under identen til komponenten som oppretter Innholdet i intentn er ikke tilgjengelig fra applikasjoner Flere referanser kan peke til samme PendingIntent Bruk send metoden til å utføre PendingIntent actionen
12
Notifications
13
Oversikt Bakoverkompatible notifications Notifications med actions Mer personlige notifications Flere notifications Expandable notifications
14
Lage en notification Bruker builder pattern Finnes to versjoner Notification.Builder del av standard API’et NotificationCompat.Builder del av v4 support library Foretrekker NotificationCompat.Builder Nedgraderer funksjonalitet etter behov Krever inkludering av v4 support library Notification noti = new Notification.Builder(mContext).setContentTitle("New mail from " + sender.toString()).setContentText(subject).setSmallIcon(R.drawable.new_mail).setLargeIcon(aBitmap).build();
15
Vanlige Notification Properties Støtter 4 properties i alle Android versjonene 3 elementer i UI’et Small icon: Builder.setSmallIcon Title: Builder.setContentTitle Text: Builder.setContentText Kan assosiere klikk action på en notification Valgfritt på Android 3.0 (API 11) og nyere Kreves på tidligere versjoner
16
Legge til notification action Brukere forventer at noe skjer når de trykker på en notification Bruk setContentIntent Action kan være hva som helst en Intent kan representere Åpner vanligvis en Activity Bruker en spesiell klasse kaldt PendingIntent Pakker en Intent i en fremtidig action Bruk PendingIntent.getActivity for å pakke inn en Activity Intent i en PendingIntent
17
NotificationManager NotificationManager gir tilgang til notification systemet Er en systemservice Bruk Context.getSystemService med Context.NOTIFICATION_SERVICE Use notify metoden for å vise notificationen Må gi en instans av Notification klassen En int verdi definert av applikasjonen Kan også inkludere en tag Kan oppdatere en notification ved å bruke samme id/tag Fjern notification med cancel NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(NOTIFICATION_ID, notification);
18
Mer kontroll Android 3.0 (API 11) gir mer kontroll over notifications Gir mulighet til å påvirke oppførselen til notificationene i listen Kan gjøre dem mer informative Hvis NotificationCompat.Builder blir disse ekstra funksjonene ignorert hvis de ikke er støttet
19
Oppførsel i builder Kontroller fjerning Kontroller om notification automatisk skal fjernes når bruker trykker på den Builder.setAutoCancel Bør stort sett være true Hindre brukere i å fjerne den Builder.setOngoing Sett bare hvis nødvendig Kontrollere prioritet Builder.setPriority Vær forsiktig
20
Priority builder.setPriority(Notification.PRIORITY_MAX);
21
Mer informative Kan gjøres mer informative Kan ha et større ikon i tillegg Builder.setLargeIcon Kan plassere en teller i notificationen Builder.setNumber Kan vise en spesiell melding når den først vises Builder.setTicker
22
Expandable Notifications Android 4.1 (API 16) introduserte expandable notifications Har et standard view og kan utvides til å vise mer info Benytter style klasser inne i NotificationCompat klassen Bruker Builder.setStyle til å assosiere med builder instansen BigTextStyle klassen gir et større tekstfelt BigPictureStyle klassen kan vise et bilde opp til 240dp høyt InboxStyle klassen kan vise tekslinjer
23
Oppsummering Foretrekker NotificationCompat.Builder fremfor Notification.Builder Small icon, Title, Text og action fungerer på alle versjoner Bruker PendingIntents til å representere actions Må ha action i versjoner < API Level 11 API Level 11 gir mer kontroll Kan kontrollere fjerning Kan gjøre de mer personlig API level 16 gir expandable notifications Kan inkludere mer informasjon Kan utvide og minimere notificationen
24
Oversikt Notifications og activity navigering Foreground servicer Notification actions Notifications – eget layout
25
Notifications og activity navigering Kan «ødelegge» navigering Brukere har ofte en forventning av hvor back knappen fører Ofte er en Activity dypt i hierarkiet Notifications lager ikke en back historie
26
Gjøre det konsist Legge ved back stack informasjon til notificationen Applikasjonen med activityen som kalles på ha activity hierarkiet i manifest Må lagre activity hierarkiet i TaskStackBuilder instanse Lage PendingIntent med TaskStackBuilder
27
Notification Actions Actions gir knapper direkte i notificationen Støtter Android 3.0 (API level 11) og høyere Kan ha opp til 3 actions i en notification Har et ikon og en tekst Hver knapp bruker en egen PendingIntent Dette er i tillegg til den «vanlige» Unngå og bruke i applikasjoner som er satt til mindre enn API level 11 Knappene vises kun som et hvitt felt
28
Eget layout Kan bruke en egen layout Kan bruke de view hierarkier som får plass Tvers av prosesser Notification kjører på OS host process View hierarki er i applikasjonens prosess RemoteView gir mulighet til å sende view hierarkier på tvers av prosesser Bruk NotificationCompat.Builder.setContent
29
Oppsumering Lag en konsistent oppførsel til back knappen Bruk TaskStackBuilder for å lage back stacken Krever at activityen som kjøres har en parent i manifestet Notification actions lager knapper direkte i notificationen Knytter ytterligere PendingIntent instanser til notificationen RemoteView benyttes for egne notification layout
30
Nytt i Android 5.0 Visuelle forandringer Bygger på MaterialDesign Notifications kan eksistere på lock screen. Heads-up notifications High priority notifications Vises når enheten er i bruk. Cloud-syn Fjerner man en notification på en enhet, fjernes den på alle.
32
Oppgaver/Eksempler 1. Lag en notification med mye tekst (skal sendes videre til en activity som viser teksten): 2 Lag en notification med bilde(skal sendes videre til en activity som viser bildet):
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.