- androiden tjenesteydelser

, en tjeneste, er en komponent, der kører i baggrunden til at udføre langvarige operationer uden for interaktion med brugeren, og det fungerer endnu, hvis anvendelse er ødelagt.en tjeneste, kan især tage to stater −,, beskrivelse, begyndte en tjeneste, begyndte, da en ansøgning komponent, som f.eks. en virksomhed, begynder det at, startservice(),.når begyndte en tjeneste kan løbe i baggrunden på ubestemt tid, selv om den komponent, der startede det er ødelagt.kun en tjeneste, bundet, når en ansøgning del bindes til det ved at kræve, bindservice(),.en bundet tilbyder en klient - grænseflade, der gør det muligt for komponenter til at interagere med service, sende anmodninger, få resultater, og endda over processer med interprocess meddelelse (ipc).en tjeneste er livscyklus callback metoder, at de kan gennemføre for at overvåge ændringer i tjenestens stat, og du kan udføre arbejde på det relevante tidspunkt.følgende diagram på venstre viser livscyklus, når tjenesten er skabt med startservice() og diagrammet til højre viser livscyklus, når tjenesten er skabt med bindservice(): (billede høflighed: android.com), at oprette en tjeneste, man skaber en java - klasse, der udvider service basisklasse eller et af de eksisterende undergrupper.den service, basisklasse definerer forskellige callback metoder, og det vigtigste er angivet nedenfor.du behøver ikke at gennemføre alle de callbacks metoder.men det er vigtigt, at du forstår hinanden og gennemføre foranstaltninger, der kan sikre din app opfører sig som brugere forventer,.,, callback beskrivelse onstartcommand() systemet kræver denne metode, når en anden bestanddel, f.eks. en virksomhed, anmoder om, at tjeneste påbegyndes, ved at kræve, startservice(),.hvis de gennemfører denne metode, er det dit ansvar at standse gudstjenesten, når arbejdet er gjort, ved at kræve, stopself(), eller, stopservice() metoder.onbind() systemet kræver denne metode, når en anden del vil blive forbundet med tjeneste ved at kalde, bindservice(),.hvis de gennemfører denne metode, skal du give en grænseflade, at kunderne bruger til at kommunikere med den tjeneste, ved at sende en, ibinder, objekt.du skal altid gennemføre denne metode, men hvis du ikke vil give bindende, så burde du vende tilbage, nul.onunbind() systemet kræver denne metode, når alle kunder har afskåret fra en bestemt interface offentliggjort af tjenesten.onrebind() systemet kræver denne metode, når nye klienter er forbundet til tjeneste, efter at det var blevet meddelt, at alle havde afbrudt sine, onunbind (").oncreate() systemet kræver denne metode, når tjenesten er oprettet ved hjælp onstartcommand(), eller, onbind(),.denne opfordring er forpligtet til at udføre engangs - fælde.ondestroy() systemet kræver denne metode, når tjenesteydelsen anvendes ikke længere og er ved at blive ødelagt.din tjeneste bør gennemføre denne til at rydde op i alle ressourcer, såsom tøj, registreret lyttere, modtagere, osv. følgende skelet service viser hver af livscyklus, metoder og minus;, pakke com.tutorialspoint; import android.app.service; import android.os.ibinder; import android.content.intent; import android.os.bundle; offentlige klasse helloservice udvider service (/* * angiver, hvordan de skal opføre sig, hvis tjenesten er dræbt * /int mstartmode; /* * grænseflade for klienter, der binder * /ibinder mbinder; /* * angiver, om onrebind skal anvendes * /boolean mallowrebind; /* * ringede, når tjenesten er ved at blive dannet.* /@ tilsidesætte offentlige tomrum oncreate() {} /* * tjenesten er begyndt, på grund af en opfordring til at startservice() * /@ tilsidesætte offentlige int onstartcommand (intent - to - forsæt, int flag, int startid) {tilbage mstartmode;} /* * en klient er bindende for den tjeneste, med bindservice() * /@ tilsidesætte offentlige ibinder onbind (intent - to - hensigt) {tilbage mbinder;} /* * ringede, da alle kunder har ubundet med unbindservice() * /@ tilsidesætte offentlige boolean onunbind (intent - to - hensigt) {tilbage mallowrebind;} /* * ringede, når en kunde er bindende for den tjeneste, med bindservice() * /@ tilsidesætte offentlige tomrum onrebind (intent - to - hensigt) {} /* * ringede, da tjenesteydelsen anvendes ikke længere og ødelægges* /@ tilsidesætte offentlige tomrum ondestroy() {}}, f.eks. dette eksempel vil tage dig gennem et enkelt skridt til at vise, hvordan man skaber sin egen androide.følg følgende foranstaltninger til at ændre den androide ansøgning, der blev skabt i verden, er f.eks. kapitel:,, skridt beskrivelse 1 de vil bruge androide studioide at skabe en androide, anvendelse og navn, det er min ansøgning under den pakke, com.example.my anvendelse, som forklaret i den, hej verden f.eks. kapitel.2 ændre vigtigste aktivitet fil, mainactivity.java, at tilføje, startservice(), og stopservice() metoder.3, skabe en ny java database, myservice.java, i den pakke, com.example.my anvendelse.denne sag vil være gennemførelsen af androide tjenstlige metoder.4 definerer deres tjeneste i androidmanifest.xml, fil med < tjeneste /> tag.en ansøgning kan have en eller flere tjenester uden nogen begrænsninger.5 ændre misligholdelse indholdet af res /layout /activity_main.xml, fil at medtage to knapper i lineære indretning.6. ingen grund til at ændre konstanter i res /værdier /strings.xml, fil.- androiden studie tager sig af string værdier 7 løb anvendelsen at iværksætte androide emulator og kontrollere resultatet af ændringerne i ansøgningen.efter er indholdet af den ændrede vigtigste aktivitet fil src /com.example.my anvendelse /mainactivity -.denne dokumentation kan omfatte hver af de grundlæggende livscyklus metoder.vi har tilføjet, startservice(), og stopservice(), metoder til start og stop tjenesten., pakke com.example.my anvendelse, import - android.os.bundle; import android.app.activity; import android.view.menu; import android.content.intent; import android.view.view; offentlige klasse mainactivity udvider aktivitet {@ tilsidesætte offentlige tomrum oncreate (bundt savedinstancestate) (super. oncreate (savedinstancestate); setcontentview (r.layout. activity_main)} @ tilsidesætte offentlige boolean oncreateoptionsmenu (menu menu) (getmenuinflater(). puste (r.menu.activity_main menuen); tilbage.} //metode til at starte de service public tomrum startservice (betragtning) (startservice (nye hensigt (getbasecontext(),myservice. klasse)) //- metode til at standse de service public tomrum stopservice (betragtning) (stopservice (nye hensigt (getbasecontext(), myservice. klasse)), som er indholdet af src /com.example.my anvendelse /myservice -.denne sag har gennemførelsen af en eller flere metoder i forbindelse med tjeneste, der er baseret på kravene.for nu skal vi gennemføre kun to metoder, onstartcommand(), og ondestroy(), −, pakke com.example.my anvendelse, import - android.app.service; import android.content.intent; import android.os.ibinder; import android.widget.toast; offentlige klasse myservice udvider service (@ tilsidesætte offentlige ibinder onbind (intent - to - arg0) {tilbage for;} @ tilsidesætte offentlige int onstartcommand (intent - to - forsæt, int flag, int startid) (//lad det fortsætte, indtil det er stoppet.skål. maketext (det "tjeneste begyndte", skål. length_long). show(); tilbage start_sticky;} @ tilsidesætte offentlige tomrum ondestroy() {super. ondestroy(). skål. maketext (det "tjeneste ødelagt", skål. length_long). show();}} efter vil det ændrede indhold, androidmanifest.xml, fil.her har vi tilføjet < tjeneste /> tag, til også at omfatte vores tjeneste:, < åbenbar xmlns: androide = "http://schemas.android.com/apk/res/android" pakke = "kom. f.eks. myapplication" androide: versioncode = "1" androide: versionname = "0" > < bruger sdk androide. minsdkversion = "13" androide: targetsdkversion = "22" /> < anvendelse androide: ikon = "@ drawable /ic_launcher" androide: fareseddel = "@ snor /app_name" androide: tema = "@ stil /apptheme" > < aktivitet androide: navn mainactivity = "." androide: fareseddel = "@ snor /title_activity_main" > < hensigt filter > < aktion androide: navn = "androide. forsæt. vigtigste" /> < kategori- androiden: navn = "androide. hensigt. kategori. granatkaster" /> < /hensigt filter > < /aktivitet > < service androide: navn = ". myservice" /> < /anvendelse > < /åbenbar > efter vil være indholdet af de res /layout /activity_main.xml, fil at medtage to knapper:, < relativelayout xmlns: androide = "http://schemas.android.com/apk/res/android" xmlns: værktøj = "http://schemas.android.com/tools" androide: layout_width = "match_parent" androide: layout_height = "match_parent" androide: paddingleft = "@ dimension /activity_horizontal_margin" androide: paddingright = "@ dimension /activity_horizontal_margin" androide: paddingtop = "@ dimension /activity_vertical_margin" androide: paddingbottom = "@ dimension /activity_vertical_margin "værktøjer: forbindelse =". mainactivity "> < textview androide: id =" @ + id /textview1 "androide: layout_width =" wrap_content "androide: layout_height =" wrap_content "androide: tekst =" eksempel tjenesteydelser "androide: layout_alignparenttop =" ægte "androide: layout_centerhorizontal =" sande "androide: textsize =" 30dp "/> < textview androide: id =" @ + id /textview2 "androide: layout_width =" wrap_content "androide: layout_height =" wrap_content "androide: tekst =" undervise "androide: textcolor ="&#ff87ff09 "androide: textsize =" 30dp "- androiden: layout_above =" @ + id /imagebutton "androide: layout_centerhorizontal =" ægte "androide: layout_marginbottom ="40dp" /> < imagebutton androide: layout_width = "wrap_content" androide: layout_height = "wrap_content" androide: id = "@ + id /imagebutton" androide: src = "@ drawable /abc" androide: layout_centervertical = "ægte" androide: layout_centerhorizontal = "ægte" /> < knap androide: layout_width = "wrap_content" androide: layout_height = "wrap_content" androide: id = "@ + id /button2" androide: tekst = "start - tjenester" androide: onclick = "startservice" androide: layout_below = "@ + id /imagebutton" androide: layout_centerhorizontal = "ægte" /> < knap androide: layout_width = "wrap_content" androide: layout_height = "wrap_content" androide: tekst = "stop services "androide: id =" @ + id /knap "androide: onclick =" stopservice "androide: layout_below =" @ + id /button2 "androide: layout_alignleft =" @ + id /button2 "androide: layout_alignstart =" @ + id /button2 "androide: layout_alignright =" @ + id /button2 "- androiden: layout_alignend =" @ + id /button2 "/> < /relativelayout > efter vil være indholdet af de res /værdier /strings.xml, at definere to nye konstanter:, < ressourcer > < snor navn =" app_name "> min ansøgning < /snor > < snor navn =" menu_settings "> (< /snor > < snor navn =" title_activity_main "> mainactivity < /snor > < /ressourcer > lad os forsøge at - vi ændrede, hallo!vi har lige ændret anvendelse.jeg går ud fra, at du har skabt din, avd, mens det miljø fælde.at løbe app fra androide studie, åbne en af jeres projekt er aktivitet, filer og klik, ikon fra værktøjet bar.- androiden studie installationer - app på din avd og starter det, og hvis det er fint med deres opbygning og anvendelse, vil det vise følgende emulator vindue −, nu at starte din tjeneste, så klik på, begynder service, det vil påbegynde tjeneste, og som om vores programmer, onstartcommand(), metode - en besked, tjeneste begyndte, skal anføres på bunden af simulatoren således −,, at standse den tjeneste, kan du klikke stop service - knap.

Android Service lifecycle
Android StudioRun Icon
Android Service Demo
Android Service Start



Previous:
Next Page: