Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Android-Programmering Våren 2015. Oversikt – PendingIntents  Rollen til PendingIntents  Vanlig bruk  Deling  Sending.

Liknende presentasjoner


Presentasjon om: "Android-Programmering Våren 2015. Oversikt – PendingIntents  Rollen til PendingIntents  Vanlig bruk  Deling  Sending."— Utskrift av presentasjonen:

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.

31

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):


Laste ned ppt "Android-Programmering Våren 2015. Oversikt – PendingIntents  Rollen til PendingIntents  Vanlig bruk  Deling  Sending."

Liknende presentasjoner


Annonser fra Google