130 likes | 258 Views
Android -Programmering . Våren 2014. Activity og Intents. Repetisjon fra forrige gang. Emulatoren. Tips for å speede den opp. Implisitte Intents. Matcher komponenter med action, category og/eller data Krever intent filtere Kan ikke inneholde komponentnavnet.
E N D
Android-Programmering Våren 2014
Activity og Intents • Repetisjon fra forrige gang
Emulatoren • Tips for å speede den opp
Implisitte Intents • Matcher komponenter med action, category og/eller data • Krever intentfiltere • Kan ikke inneholde komponentnavnet
Komponenter og intentfiltere • Komponenter har intentfiltere for å støtte implisitte intenter • Definert i manifest filen • Hvert intent filter inneholder 3 tester: action, category, data • En komponent kan tilby flere intentfiltere
Action-basert intent og intent filter • En action beskriver hva som skal utføres • Action er en string verdi • Bruker ofte pakke-navn • Vanlig at den inneholder «action» «com.capgemini.action.DO_WORK» • Finnes mange innebygde • Intent har ikke flere enn en action • Intent filter inneholder null eller flere actions
Action Matching • Regler • Case-sensitiv sammenligning av strengene • com.capgemini.action.DO_WORK = com.capgemini.action.DO_WORK • com.capgemini.action.DO_WORK != com.capgemini.action.do_work • En intent action må matche en action i intent filteret • Et filter med uten noen action liste, vil aldri matche noen intent • En intent uten noen action verdi, vil matche alle filtere med minst 1 action
Ekstra informasjon til Intents • Intentextras tilbyr en måte å inkludere ekstra informasjon • Inneholder et navn og en verdi «fornavn» -> «Lars Emil» • Kan være stronglytyped • Støtter stringer og de fleste primitive datatyper • Arrayer • Java Serializable og AndroidParcelable • Extras blir ikke tatt med i testene
Intent og intentfilter cATEGORY • Category deler kvalifiserte komponenter opp i undergrupper • Action er en string verdi • Bruker ofte pakke-navn • Vanlig og inneholde «category» «com.capgemini.category.VIEW» • Finnes mange innebygde • Intent har ingen eller flere category-verdier • Intent filter inneholder ingen eller flere category-verdier
cATEGORY Matching • Regler • Case-sensitiv sammenligning av strengene • Alle category i intent må være i intent filteret • En intent uten category matcher alle • Category kan kreves uten at den finnes i en intent • CATEGORY_DEFAULT • CATEGORY_LAUNCHER • Må være der for å vises i AndroidLauncher skjermen
Intent og Intent filter data • Type data • Mime • URI (Uniform Resource Identifier) • Hvor dataen befinner seg • En intent har ingen eller ett data objekt • Filter har ingen eller flere data tester • Kan inneholde wildcards
URI • Scheme • Host • Port • Path • http://www.capgemini.no:80/karriere
Data matching • Generelle regler • Mime type og URI er case-sensitive • Det må finnes en forekomst av intent data i intent filter