Broadcast mottakere 
 bare svare for å kringkaste meldinger fra andre programmer eller fra selve systemet. Disse meldingene gang kalt hendelser eller hensikter. For eksempel kan programmer også starte sendinger for å la andre programmer vet at noen data har blitt lastet ned til enheten og er tilgjengelig for dem å bruke, så dette blir kringkastet mottakeren som vil fange opp denne kommunikasjonen, og vil iverksette nødvendige tiltak. 
 < p> Det er følgende to viktige skritt for å gjøre BroadcastReceiver fungerer for systemkringkastet hensikter og minus;. 
 
 
 Opprette Broadcast Receiver 
 
 
 Registrering Broadcast Receiver 
 
 
 Det er ett av trinnene i tilfelle du kommer til å iverksette tilpassede hensikter så du blir nødt til å opprette og kringkaste de hensikter. 
 
 Opprette Broadcast Receiver 
 < p> En kringkastingsmottaker er implementert som en underklasse av  BroadcastReceiver 
 klasse og overstyring av OnReceive () metode der hver melding er mottatt som en  Intent 
 objekt parameter. 
 public class MyReceiver strekker BroadcastReceiver {Override public void OnReceive (Context kontekst, Intent hensikt) {Toast.makeText (kontekst, "Intent oppdaget.", Toast.LENGTH_LONG) .vis (); }} 
 Registrering Broadcast Receiver 
 
 En søknad lytter etter bestemte kringkastings hensikter ved å registrere en kringkastingsmottaker i  AndroidManifest.xml 
 fil. . Anser vi skal registrere  MyReceiver 
 for systemgenerert hendelsen ACTION_BOOT_COMPLETED som er avfyrt av systemet når Android-systemet har fullført oppstartsprosessen 
 Broadcast-mottaker 
 < søknad android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < mottaker android: name = "MyReceiver" > < intent-filter > < handling android: name = "android.intent.action.BOOT_COMPLETED" > < /action > < /intent-filter > < /mottaker > < /søknad > 
 Nå når Android-enheten blir startet, vil den bli mottatt av BroadcastReceiver  MyReceiver Hotell og implementert logikk inne  OnReceive () 
 vil bli henrettet . 
 
 Det er flere systemgenerert hendelser definert som slutt statiske felt i  Intent 
 klasse. Tabellen nedenfor viser noen viktige systemhendelser 
. Hendelses ConstantDescriptionandroid.intent.action.BATTERY_CHANGEDSticky kringkastings inneholder ladetilstand, nivå, og annen informasjon om battery.android.intent.action.BATTERY_LOWIndicates lav batterispenning på enheten. android.intent.action.BATTERY_OKAYIndicates batteriet er nå i orden etter å ha blitt low.android.intent.action.BOOT_COMPLETEDThis sendes en gang, etter at systemet er ferdig booting.android.intent.action.BUG_REPORTShow aktivitet for rapportering en bug.android.intent .action.CALLPerform en samtale med noen som er spesifisert av data.android.intent.action.CALL_BUTTONThe brukeren trykket på "call" -knappen for å gå til alarmsentralen eller andre passende UI for å plassere en call.android.intent.action.DATE_CHANGEDThe dato har changed.android.intent.action.REBOOT Har enheten omstart. 
 sending Tilpassede Intents 
 
 Hvis du vil at programmet selv skal generere og sende tilpassede hensikter så du blir nødt til å opprette og sende de hensikter ved å bruke  sendBroadcast () 
 metode inni aktivitet klasse. Hvis du bruker  sendStickyBroadcast (Intent) 
 metoden, er den Intent  klissete 
, noe som betyr at  Intent 
 du sender opphold rundt etter at sendingen er fullført. Anmeldelser public void broadcastIntent (Vis visning) {Intent hensikt = new Intent (); intent.setAction ("com.tutorialspoint.CUSTOM_INTENT"); sendBroadcast (hensikt);} 
 Denne intensjonen  com.tutorialspoint.CUSTOM_INTENT 
 kan også registreres på lignende måte som vi har regsitered system generert hensikt 
 < søknad android. icon = "@ teikne /ic_launcher "android: label =" @ streng /APP_NAME "android: tema =" @ stil /AppTheme "> < mottaker android: name = "MyReceiver" > < intent-filter > < handling android: name = "com.tutorialspoint.CUSTOM_INTENT" > < /action > < /intent-filter > < /mottaker > < /søknad > 
 Eksempel 
 
 Dette eksempelet vil forklare deg hvordan du lager  BroadcastReceiver 
 å avskjære tilpasset hensikt. Når du er kjent med tilpassede hensikt, så kan du programmere din søknad for å avskjære systemgenerert hensikter. Så la oss følge følgende trinn for å endre Android applikasjon vi opprettet i  Hello World Eksempel 
 kapittel − 
 StepDescription1You vil bruke Android studio for å lage en Android-applikasjon og navn det som  Min Application 
 under en pakke  com.example.My Søknad 
 som forklart i  Hello World Eksempel 
 chapter.2Modify hovedaktivitet fil  MainActivity.java 
 å legge  broadcastIntent () 
 method.3Create en ny java fil som heter  MyReceiver.java 
 under pakken  com.example.My Søknad 
 å definere en BroadcastReceiver.4An program kan håndtere en eller flere egen og system hensikter uten noen restriksjoner. Hver innrykk du ønsker å avskjære må være registrert i  AndroidManifest.xml 
 fil ved hjelp av < mottaker ... /> tag 5Modify innholdet i  res /layout /activity_main.xml 
 filen standard for å inkludere en knapp for å kringkaste intent.6No må endre strengen filen, Android studio ta vare på string.xml file.7Run søknaden til lansere Android emulator og kontrollere resultatet av de endringer som er gjort i programmet. 
 Følgende er innholdet i den modifiserte hovedaktivitet filen  src /com.example.My Søknad /MainActivity.java 
. Denne filen kan inneholde hver av de grunnleggende livsløps metoder. Vi har lagt til  broadcastIntent () 
 metode for å kringkaste en tilpasset hensikt 
 pakken com.example.My Application;. Import android.os.Bundle, import android.app.Activity; import android.view.Menu; import android.content.Intent, import android.view.View; public class MainActivity strekker Aktivitet {Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); }Override Public boolean onCreateOptionsMenu (Meny menyen) {getMenuInflater () blåse (R.menu.activity_main, meny).; return true; } //Kringkaste en tilpasset hensikt. public void broadcastIntent (Vis visning) {Intent hensikt = new Intent (); intent.setAction ("com.tutorialspoint.CUSTOM_INTENT"); sendBroadcast (hensikt); }} 
 Følgende er innholdet av  src /com.example.My Søknad /MyReceiver.java Bilde: 
 pakke com.example.My Application, import android.content.BroadcastReceiver; import android. content.Context, import android.content.Intent, import android.widget.Toast; public class MyReceiver strekker BroadcastReceiver {Override public void OnReceive (Context kontekst, Intent hensikt) {Toast.makeText (kontekst, "Intent oppdaget.", Toast .LENGTH_LONG) .vis (); }} 
 Følgende vil den endrede innholdet i  AndroidManifest.xml 
 fil. Her har vi lagt til < tjeneste ... /> tag å inkludere vår tjeneste: 
 < manifest xmlns: android = "http://schemas.android.com/apk/res/android" pakken = "com.example.My Application" android: version = "1" android: versjon = "1.0" > < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < søknad android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: ". MainActivity" name = android: label = "@ streng /title_activity_main" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < mottaker android: name = "MyReceiver" > < intent-filter > < handling android: name = "com.tutorialspoint.CUSTOM_INTENT" > < /action > < /intent-filter > < /mottaker > < /søknad > < /manifest > 
 Etter vil være innholdet i  res /layout /activity_main.xml 
 fil for å inkludere en knapp for å kringkaste vår custom hensikt − 
 < RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android~~number=plural" xmlns: verktøy = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = " match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =". MainActivity " > < TextView android: id = "+ id /textView1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Eksempel på Broadcast" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true "android: Tekststørrelse =" 30dp "/> < TextView android: id = "+ id /textView2" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: textcolor = "# ff87ff09" android: Tekststørrelse = "30dp "android: layout_above =" + id /imageButton "android: layout_centerHorizontal =" true "android: layout_marginBottom =" 40dp "/> < ImageButton android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /imageButton" android: src = "@ teikne /abc" android: layout_centerVertical = "true" android: layout_centerHorizontal = " true "/> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /knappen2" android: text = "Broadcast Intent" android: onclick = "broadcastIntent" android: layout_below = "+ id /imageButton "android: layout_centerHorizontal =" true "/> < /RelativeLayout > 
 Etter vil være innholdet i  res /verdier /strings.xml 
 å definere to nye konstanter og minus; 
 < resources > < string name = "menu_settings" > Innstillinger < /string > < string name = "title_activity_main" > My Application < /string > < /ressurser > 
 La oss prøve å kjøre vår modifiserte  Hello World 
 søknaden vi bare endret!. Jeg antar at du hadde laget ditt  AVD 
 mens du gjør miljøet oppsett. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android Studio installerer programmet på AVD og starter den, og om alt er bra med set-up og anvendelse, vil det vise følgende Emulator vindu − 
 
 Nå kringkaste vår skikk hensikt, la oss klikk på  Broadcast Intent 
 knappen, vil dette kringkaste vår custom hensikt  "com.tutorialspoint.CUSTOM_INTENT" 
 som vil bli mottatt av våre registrerte BroadcastReceiver dvs. MyReceiver og som per vår implementert logikk en toast vil vises på bunnen av simulatoren som følger − 
 
Du kan prøve å implementere andre BroadcastReceiver å avskjære system generert hensikter som system oppstart, dato endret, lavt batteri osv Anmeldelser

