Android broadcast (broadcast üzenetek)

Az Android, van fogalma a broadcast üzenetek, amelyek akkor küldeni vagy fogadni. Mindkét folyamat független és külön is használható.

üzenetküldés

Kezdeni, megtanuljuk, hogyan kell üzenetet küldeni. Az egyik tanultakat, hogy egy másik tevékenység szándék szándék. De szándékok lehet használni, hogy üzeneteket küldjenek, amelyek nem egy önálló alkalmazás objektum vagy alkatrész, és minden. És minden program rendelkezik egy speciális vevőt, lehet fogni ezt az üzenetet, és megteszi a lépéseket alapján kapott információk.

Ahhoz, hogy megértsük, képzeljük el, hogy a rádiós Kat küldi az üzenetet: „sürgősen küldjön a macska akarok lenni egy erős, független nő És a Stirlitz - a fasiszta!.!”. Talán ebben jelentés tartalmazza titkosítására, meg kell küldeni a feleségét, hogy felesége, felderítő asztalon egy kávézóban megrendelt, és Stirlitz - egy kecske! De ez nem fontos a leckét.

Bárki, aki egy speciálisan felszerelt rádió, lehet kapni ezt az üzenetet. Tehát nem a programot. Tesznek szert vevők és hallgatni egy bizonyos típusú üzenet.

Üzenetek hozhat létre maga a rendszer, valamint a programok és egyéb programokat.

Ezután létrehoz egy objektumot szándék. töltse fel a szükséges információkat, és hívja sendBroadcast () metódus azt. halad, mint a paraméter létrehozott szándék objektumot. További információ lehet használni, mint választható extra paramétereket.

Kód a virtuális macska detektálás:

Ebben a példában létrehoztunk egy tervet egy egyedi string át további adatok (a macska neve és koordináták), már küldött üzenetet. Egyéb alkalmazási kapcsolódó kártya, lehet hogy egy üzenetet, és azt mutatják, hogy a macskát a térképen.

Vannak még kapcsolódó módszerek sendStickyBroadcast () és sendOrderedBroadcast ().

A régebbi készülékek is elég volt, de mivel az Android 3.0, a biztonsági üzenetek figyelmen kívül fogja hagyni a helyhez kötött alkalmazásokban, úgy, hogy nem indul el. Ezért szükséges egy kiegészítő zászló engedélyezésre Start aktivitást.

Fogunk írni egy egyszerű példát, amely elküldi az üzenetet, és létrehozhat egy vevő szerzi be. A vevő lesz szó részletesen a második része a leckét. Addig, megkapjuk az első pillantás is.

Hozzon létre egy új projektet, és helyezzük egy jel a képernyőn gombra „Üzenet küldése”. Rendeljen attribútum onClick módszer neve, amelyet folyik küldött üzenettel.

Az osztály tevékenysége létrehozunk egy egyedi string és eljárás végrehajtására, a gombra kattintva. Szintén hozzá további információkat - az első része a rádiós üzeneteket.

Fuss a minta, akkor nyomja meg a gombot, és üzenetet küldeni. Csak az üzenet megy sehova, mert nincs alkalmazás fel van szerelve a vevő számára. Ahhoz, hogy orvosolja a helyzetet, és hozzon létre egy vevő az alkalmazásban. Mi jól fog venni a helyükön.

A vevő egy szabványos Java-alapú osztály BroadcastReceiver. Manuálisan hozzon létre egy osztályt, és töltse ki a szükséges eszközöket. Előtte és kapott. De a stúdióban van egy kész sablon, amely segít megmenteni egy kis időt.

Kattintson a jobb gombbal az egér a csomag neve, és válassza ki az Új | egyéb | broadcast Receiver

Android broadcast (broadcast üzenetek)

Kérdezi a vevő nevére párbeszédpanelen hagyja a többi beállítás változatlan marad.

Android broadcast (broadcast üzenetek)

Studio létrehoz egy változás két helyen. Először is, az osztály jön létre MessageReceiver:

Másodszor, az új blokk bekerül az nyilvánvaló.

Meg kell hozzá egy szűrőt, amelyen keresztül fogja elkapni az üzenetet.

Vissza a vevő osztály és módosíthatja onReceive () metódust.

Ismét mi fut a minta újra és üzenetet küldeni. Mivel a kérelem jelenleg ellátott nemcsak adó, hanem a vevő, akkor meg kell ragadnia az üzenetet, és mutasd meg nekünk.

Android broadcast (broadcast üzenetek)

Hozhat létre egy másik alkalmazás a vevő egy alkalmazás üzenetet küld, és az egyik, hogy úgy.

vevőkészülékek

Itt simán át a vevő üzeneteket. Sőt, akkor nem gyakran kell üzenetet küldeni gyakrabban kellet üzenetek fogadására. Az első és legfontosabb, az üzeneteket a rendszer. Ilyen üzenet lehet:

  • alacsony akkumulátor
  • A fényképezőgép gombjának megnyomásával
  • Az új alkalmazások telepítése

A vevő lehet létrehozni két módon - kiáltványában (szoktuk ezt a módszert a példában), illetve programozva registerReceiver () módszer. A két módszer között jelentős különbség van. Vevő beállítva a kiáltvány ismert rendszer, amely ellenőrzi a kiáltvány az összes telepített alkalmazást. Ezért, még ha az alkalmazás nem fut, attól még nem lesz képes reagálni a bejövő üzenetet.

Receiver létrehozott szoftver, csak akkor működik, abban az esetben, ha a tevékenység az alkalmazás aktív. Úgy tűnt, hogy a hátrányos helyzetű, és nincs értelme, hogy ezt a megközelítést. De a dolgok nem ilyen egyszerű. Néhány rendszer üzenetek feldolgozása csak vevők létre programozott. És ennek oka van. Például, ha az alkalmazás nem fut, akkor nincs értelme, hogy tájékoztatást kapjon a töltöttségi szintet. Ellenkező esetben az akkumulátor fogyasztható gyorsabban, amikor felesleges haszontalan munkát. További információt a feltöltéssel, az alkalmazás lehet beszerezni, ha szükség van rá. Szükség van a dokumentációt, hogy milyen vevőt kell használni.

Egy szoftver regisztrációs vevő, azt is vegye ki a regisztráció, ha már nincs szüksége rá via unregisterBroadcastReceiver () metódust.

Időszakos működés percenként

Tekintsük a példát időszakos kiváltó vevő percenként a szisztemikus szándék android.intent.action.TIME_TICK. A vevő jön létre programozottan. Adjunk hozzá két gomb tevékenység képernyő regisztráció és de-nyilvántartásba az üzenettel.

Kézzel hozzon létre egy új osztályt TimeBroadcastReceiver. örököl BroadcastReceiver:

Akkor hozzon létre egy osztályt, és a vevő egy maszkon keresztül, mint mi az előző példában. De ebben az esetben törölje a bejegyzést róla az nyilvánvaló, hiszen nem kell. De ha elfelejti, hogy ezt, akkor semmi rossz fog történni, mert nem fejtik ki a szűrőket.

Nyissa meg a kódot a fő tevékenység, cégjegyzékszáma (nyilvántartási és felszállás) vevő:

A projekt futtatásához, és kattintson az első gombot a hírlevélre broadcast üzenetet. Most percenként indít a dob felugró üzenetet az aktuális időt. Még ha váltani egy másik alkalmazás, akkor is látni fogja az üzenetet.

Ez csak egy példa, amikor a vevő kell a programot. Láttam sokszor a fórumokon kérdéseket, hogy miért nem működik ez a szándék android.intent.action.TIME_TICK. És ez nem volt szükséges regisztrálja azt a kiáltványt.

A példánkban már telepített és eltávolított a regisztrációs gombnyomást. Jellemzően regisztrációs onResume () módszer. és távolítsa el regisztrációs onPause () módszer.

Emlékeztetni kell arra, hogy a program regisztrációs broadcast üzenet jön létre a fő alkalmazás szál, és ez szolgálhat hiba forrása, ha a műveletek BroadcastReceiver hosszú időt vesz igénybe. Alternatívaként használja a szolgáltatást. Olvassa el a cikket a témában (en).

Automatikus indítás Activity Service vagy rendszerindító (újraindítás) devaysa

Egy másik hasznos például, amelynek gyakran használt alkalmazások.

Ha az alkalmazás (szolgáltatás) azonnal meg kell kezdeni, miután a készülék újraindul, használati szándék android.intent.action.BOOT_COMPLETED:

Létrehoztunk egy külön osztályt a broadcast üzenetet. Akkor is meg kell létrehozni és regisztrálni a vevő engedélye az nyilvánvaló.

Követjük az étrend

Nem, ez megy a jobb macskaeledel. Ez arra utal, hogy a hatalom a villamos energiát. Ha a készülék ki van húzva a díjat, a rendszer értesíti az eseményről keresztül sugárzott szándék android.intent.action.ACTION_POWER_DISCONNECTED.

Nem fogunk kezdeni egy új vevőt, és nyissa ki a nyilvánvaló és további szűrőket a vevő az üzenetek rádiós Kat.

A tantermi MessageReceiver hozzá a kódot a módszer.

Példát kell ellenőrizni a valódi eszköz. Csatlakoztassa a készüléket a hatalom, majd húzza ki a kábelt. Egy üzenet jelenik meg a képernyőn.

más példák