FMUSER Wirless Transmit Video and Audio Errazago!

[posta elektroniko bidez babestua] WhatsApp + 8618078869184
Hizkuntza

    Android-en Broadcast-en azalpen zehatza

     

    Igorpena bi mota desberdinetan banatuta dago: "Emankizun normalak" eta "Ordenatutako emankizunak". Emankizun arrunta guztiz asinkronoa da eta emisio hargailu guztiek aldi berean jaso dezakete (logikoki). Mezuak bidaltzeko eraginkortasuna nahiko handia da, baina desabantaila da hartzaileak ezin diola prozesatu emaitza hurrengo hartzaileari pasatu eta ezin da amaitu. Broadcast Intent hedapena; hala ere, igorpen ordenatuak hartzaileak adierazitako lehentasunean oinarritzen da (android-en adierazita: intent-filter elementuaren lehentasun atributua, zenbat eta handiagoa izan, orduan eta handiagoa izango da lehentasuna, balio-barrutia: -1000 eta 1000. Era berean, posible Deitu IntentFilter objektuaren setPriority () ezartzeko), eta hartzaileak txandaka jasotzen du emisioa. Adibidez, A maila B baino altuagoa bada eta B maila C baino handiagoa bada, igorpena A-ra, gero B-ra eta azkenik C.-ra igortzen da A-k emisioa lortu ondoren, emankizunean datuak gorde ditzake. Emisioa B-ra bidaltzen denean, B-k A-k gordetako datuak eman ditzake.

     

    Context.sendBroadcast ()

       Bidalitakoa emisio arrunta da, eta harpidedun guztiek dute hori lortzeko eta prozesatzeko aukera.

     

    Context.sendOrderedBroadcast ()

       Bidaltzea igorpen ordenatua da. Sistemak hargailuak banan-banan exekutatuko ditu hartzaileak adierazitako lehentasunaren arabera. Aurreko hartzaileak emisioa amaitzeko eskubidea du (BroadcastReceiver.abortBroadcast ()). Emisioa aurreko hartzaileak amaitzen badu, azken honek hartzaileak ezin du emisioa lortu. Agindutako igorpenerako, aurreko hartzaileak prozesatutako emaitza gorde dezake igorpenaren asmoan eta, ondoren, hurrengo hartzaileari eman.

     
    Broadcast hargailua (BroadcastReceiver) emititzen Intent jasotzeko erabiltzen da, eta broadcast Intent igortzeko Context.sendBroadcast () eta Context.sendOrderedBroadcast () deituz egiten da. Normalean, asmo honetara harpidetutako emisio hartzaile anitzek jaso dezakete emisio asmoa. Ezaugarri hau Gaiaren JMS mezuen hartzaileen antzekoa da. Irrati difusio bidezko metodoa ezartzea honako hau da:

     

    Lehen urratsa: difusio hartzailea definitu, BroadcastReceiver heredatu eta onReceive () metodoa berridatzi.

    IncomingSMSReceiver klase publikoa extendsBroadcastReceiver {
      @Override public void onReceive (Contextcontext, Intentintent) {
      }
    }

     

    2. Urratsa: Harpidetu emisiora Interes asmoarekin, bi harpidetza metodo daude:

    Lehenengo mota: erabili kodea harpidetzeko (harpidetza dinamikoa)

    IntentFilter filter = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
    IncomingSMSReceiver receiver = newIncomingSMSReceiver ();
    registerReceiver (hartzailea, iragazkia);

     

    Bigarren mota: Harpidetu nodo AndroidManifest.xml fitxategian (harpidetza estatikoa)


      
           
      


    Ikus dezagun emisio dinamikoaren harpidetzaren eta emisio estatikoaren harpidetzaren arteko aldea:
    Harpidetza bidezko emisio estatikoari ere deitzen zaio: egoiliar emisioa. Zure aplikazioa itxita dagoenean, igorpen mezu bat badago, idatzi duzun igorpen hargailuak ere jaso dezake. Erregistro metodoa AndroidManifast da zure aplikazioan. .xml harpidetzarako.

     

    Harpidetzaren emisio dinamikoari ere deitzen zaio: egoiliarrik gabeko emisioa. Aplikazioa amaitzen denean, emisioa modu naturalean desagertuko da. Adibidez, onCreate edo onResume jardueran harpidetuta zaude, eta emisioaren harpidetza bertan behera utzi behar duzu onDestory edo onPause atalean. Bestela, salbuespen bat salatuko da, beraz, zure emisio hartzailea ez-egoiliarra izango da.

     

    Hemen beste xehetasun bat dago bi harpidetza metodoak direla. Emisioak bidaltzean, arreta jarri behar duzu: Asmo inplizituaren metodoa erregistro dinamikorako erabiltzen da, beraz, asmo inplizitua erabili behar duzu igorpenak bidaltzerakoan. , Bestela, emisio hartzaileak ezin izango du emisioa jaso. Erreparatu puntu honi. Baina modu estatikoan harpidetzean, AndroidMainfest.xml-n harpidetuta dagoelako, posible da bistaratzeko intentzioa eta asmo inplizitua erabiltzea emisioak bidaltzerakoan (noski, guk geuk definitutako emisio hargailuetarako bakarrik da), badaezpada, orokorrean inplizitua erabiltzen dugu Emisioa bidaltzeko asmoa.

     

    Ikus dezagun adibide bat:

    Begiratu proiektuaren egitura:

     

    Begiratu harpidetza estatiko bidezko emisioari:
    paketea com.broadcast.demo;

    inportatu android.app.Activity;
    inportatu android.content.Intent;
    inportatu android.os.Bundle;
    inportatu android.view.View;
    inportatu android.view.View.OnClickListener;
    inportatu android.widget.Button;

    inportatu com.example.androidbroadcastdemo.R;

    / **
     * Harpidetza bidezko emisio estatikoa
     * @autore weijiang204321
     *
     */
    public class StaticRegisterBroadcastActivity extende Activity {

    @Gainarazi
    protected void onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Button btn = (Button) findViewById (R.id.btn);
    to
    btn.setOnClickListener (berria OnClickListener () {
    @Gainarazi
    public void onClick (Ikusi v) {
    // Erabili modu estatikoa igorpena erregistratzeko, bistaratzeko asmoa erabil dezakezu igorpena bidaltzeko
    Intent broadcast = Asmo berria ("com.broadcast.set.broadcast");
    sendBroadcast (emisioa, nulua);
    }
    to
    });
    }
    to
    }


    Harpidetu AndroidMainfest.xml-en:



    <manifest xmlns:android="
    http://schemas.android.com/apk/res/android"
        package = "com.example.androidbroadcastdemo"
        android: versionCode = "1"
        android: versionName = "1.0">

        <erabiltzen-sdk
            android: minSdkVersion = "8"
            android: targetSdkVersion = "18" />
       
       
       
       
       
       

        <aplikazioa
            android: allowBackup = "egia"
            android: icon = "@ drawable / ic_launcher"
            android: label = "@ string / app_name"
            android: theme = "@ style / AppTheme">
            <jarduera
                android: name = "com.broadcast.demo.StaticRegisterBroadcastActivity"
                android: label = "@ string / app_name">
               
                   
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
       

    Ez kezkatu oraingoz beste edukiez, aurrerago hitz egingo dugun bezala, hemen emisio estatikoen erregistroan soilik zentratzen gara


          
               
                   
               
           


    Ikus dezagun emisioaren hartzailea:

    pakete com.broadcast.receiver;

    inportatu android.content.BroadcastReceiver;
    inportatu android.content.Context;
    inportatu android.content.Intent;
    inportatu android.util.Log;

    / **
     * Emisio hartzailea
     * @autore weijiang204321
     *
     */
    UnSortBroadcastReceiver klase publikoak BroadcastReceiver hedatzen du {

    @Gainarazi
    public void onReceive (Testuinguruaren testuingurua, Asmoaren asmoa) {
    Log.e ("Intent_Action:", intent.getAction () + "");
    }

    }
    Irrati-hartzailean onReceive metodoaren logika oso erraza da, hau da, Ekintzaren edukia inprimatzea.
    Exekutatu programa, emaitza oso erraza da, hemen ez dago argazkia.

     

    Ikus ditzagun harpidetza dinamikoak:


    paketea com.broadcast.demo;

    inportatu android.app.Activity;
    inportatu android.content.Intent;
    inportatu android.content.IntentFilter;
    inportatu android.os.Bundle;
    inportatu android.view.View;
    inportatu android.view.View.OnClickListener;
    inportatu android.widget.Button;

    inportatu com.broadcast.receiver.UnSortBroadcastReceiver;
    inportatu com.example.androidbroadcastdemo.R;

    / **
     * Erabili modu dinamikoa igorpena erregistratzeko
     * @autore weijiang204321
     *
     */
    klase publikoa DynamicRegisterBroadcastActivity extende Activity {
    to
    public static final String NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
    UnSortBroadcastReceiver hartzaile babestua;
    to
    @Gainarazi
    protected void onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Button btn0 = (Button) findViewById (R.id.btn);
    btn0.setOnClickListener (berria OnClickListener () {
    public void onClick (Ikusi v) {
    // Emisioa bidali
    Intent it = Asmo berria (NEW_LIFEFORM_DETECTED);
    bidaliBroadcast (it);
    }
    });
    }

    @Gainarazi
    Babestutako hutsunea onResume () {
    super.onResume ();
    // Eman izena emisioan
    IntentFilter counterActionFilter = new IntentFilter (NEW_LIFEFORM_DETECTED);
    hartzailea = berria UnSortBroadcastReceiver ();
    registerReceiver (hartzailea, counterActionFilter);
    }

    @Gainarazi
    Babestutako hutsunea onPause () {
    super.onPause ();
    // Utzi emisioa
    unregisterReceiver (hartzailea);
    }
    }
    Hemen onResume-n emititzen harpidetzen ari gara eta onPause-n emititzen ari gara.
    Aldatu abian jarritako jarduera DynamicRegisterBroadcastActivity AndroidMainfest.xml-n. Beste edukia ez da aldatu behar. Exekutatu programa eta inprimatu emaitza oso erraza da, beraz ez dut irudia hemen ikusiko.

     

    Ikus dezagun ordenatutako emisioei eta ordenatu gabeko difusioei

    Dagoeneko aipatu dugu hasieran, ikus dezagun emisio desordenatua:

    Lehenik bi emisio hargailu definitzen ditugu:

    Lehen emisio hartzailea:


    pakete com.broadcast.receiver;

    inportatu android.content.BroadcastReceiver;
    inportatu android.content.Context;
    inportatu android.content.Intent;
    inportatu android.util.Log;

    / **
     * Emisio hartzailea A
     * @autore weijiang204321
     *
     */
    klase publikoa SortBroadcastReceiverA hedatzen BroadcastReceiver {

    @Gainarazi
    public void onReceive (Testuinguruaren testuingurua, Asmoaren asmoa) {
    Log.e ("Demo:", "A emititzeko hartzailea");
    }

    }
    Bigarren emisio hartzailea:

    pakete com.broadcast.receiver;

    inportatu android.content.BroadcastReceiver;
    inportatu android.content.Context;
    inportatu android.content.Intent;
    inportatu android.util.Log;

    / **
     * Emankizun B hartzailea
     * @autore weijiang204321
     *
     */
    klase publikoa SortBroadcastReceiverB hedatzen BroadcastReceiver {

    @Gainarazi
    public void onReceive (Testuinguruaren testuingurua, Asmoaren asmoa) {
    Log.e ("Demo:", "Broadcast B");
    }

    to
    to
    }


    Harpidetu AndroidMainfest.xml helbidean emititzeko


     
               
                   
               

           

               
                   
               

    eragiketaren emaitza:


    Lasterketako emaitza bitxia da. Zergatik dago B hartzailea aurrealdean eta A hartzailea atzean? Arrazoia da AndroidMainfest.xml-eko emisioarekin harpidetzerakoan, android: lehentasun atributuaren balioa asmo-iragazkian ezartzen dugula. Zenbat eta balio handiagoa, orduan eta lehentasun handiagoa. , B hartzailearen lehentasuna 1000 da, A hartzailearen lehentasuna 999 da, beraz B-k emisioa jasotzen du lehenik eta gero A-k jasotzen du, baina ez dago loturarik B hartzailearen eta A hartzailearen artean, eta ezin da elkarreraginik izan Bai, hau ordenaz kanpoko igorpena eta asinkronoa denez, esperimentua egin dezakegu onReceiver metodoari kodea gehituz B-n:

    abortBroadcast (); // Amaitu emisio honen transmisioa

    eragiketaren emaitza:

     

    Galdera-errorea ikus dezakegu, hau da, agindurik gabeko igorpenek ez dute emisioa amaitzeko baimenik. Izan ere, amaierak ez du ezertarako balio, A hartzaileak oraindik igorpena jasotzen duelako.

     

    Ikus dezagun emisio ordenatua, kodea aldatu behar da:

    Lehenengoa emisio bat bidaltzean datza:


    Intent broadcast = Asmo berria ("com.broadcast.set.broadcast");
    sendOrderedBroadcast (emisioa, nulua);
    Ondoren, gehitu metodo bat B hartzailean emisioa amaitzeko:
    abortatuEmisioa ();

    Beste kodea ez da aldatu behar, eragiketaren emaitza:

     

    B hartzailea bakarrik dago, A hartzaileak ez du emisioa jasotzen, emisioa B hartzailean amaitzen delako eta ondorengo hargailuek ezin baitute onartu.

    Aldatu beheko kodea:

    B hartzailea:


    pakete com.broadcast.receiver;

    inportatu android.content.BroadcastReceiver;
    inportatu android.content.Context;
    inportatu android.content.Intent;
    inportatu android.os.Bundle;
    inportatu android.util.Log;

    / **
     * Emankizun B hartzailea
     * @autore weijiang204321
     *
     */
    klase publikoa SortBroadcastReceiverB hedatzen BroadcastReceiver {

    @Gainarazi
    public void onReceive (Testuinguruaren testuingurua, Asmoaren asmoa) {
    Log.e ("Demo:", "transmisio hartzailea B");
    Bundle bundle = new Bundle ();
    bundle.putString ("hurrengo_errezibitzailea", "hurrengo emisio hartzailea");
    setResultExtras (sorta);
    }
    to
    }
    B-k emisioa jaso ondoren, balio batzuk gordetzen ditu eta hurrengo hartzaileari pasatzen dio.


    A hartzailearen kodea:


    paketea com.broadcast.receive

     

     

     

     

    Zerrendatu Galdera guztiak

    Ezizena

    Emaila

    Galderak

    Gure beste produktu:

    FM Irrati Estazio Profesionaleko Ekipamendu Paketea

     



     

    Hotel IPTV irtenbidea

     


      Sartu posta elektronikoa sorpresa bat izateko

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> afrikaansa
      sq.fmuser.org -> Albaniera
      ar.fmuser.org -> arabiera
      hy.fmuser.org -> Armenian
      az.fmuser.org -> azerbaijanera
      eu.fmuser.org -> euskara
      be.fmuser.org -> Bielorrusiera
      bg.fmuser.org -> Bulgarian
      ca.fmuser.org -> Katalana
      zh-CN.fmuser.org -> Txinera (sinplifikatua)
      zh-TW.fmuser.org -> Chinese (Traditional)
      hr.fmuser.org -> kroaziera
      cs.fmuser.org -> Txekiera
      da.fmuser.org -> Danimarkarra
      nl.fmuser.org -> Holandako
      et.fmuser.org -> Estoniera
      tl.fmuser.org -> Filipinoa
      fi.fmuser.org -> finlandiera
      fr.fmuser.org -> Frantsesa
      gl.fmuser.org -> Galiziera
      ka.fmuser.org -> Georgiarra
      de.fmuser.org -> alemana
      el.fmuser.org -> Greek
      ht.fmuser.org -> Haitiko kreolera
      iw.fmuser.org -> Hebreera
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Hungarian
      is.fmuser.org -> Islandiera
      id.fmuser.org -> Indonesiera
      ga.fmuser.org -> Irlandera
      it.fmuser.org -> Italian
      ja.fmuser.org -> Japoniera
      ko.fmuser.org -> Koreera
      lv.fmuser.org -> Letoniera
      lt.fmuser.org -> Lithuanian
      mk.fmuser.org -> mazedoniera
      ms.fmuser.org -> malaysiera
      mt.fmuser.org -> maltera
      no.fmuser.org -> Norwegian
      fa.fmuser.org -> persiera
      pl.fmuser.org -> poloniera
      pt.fmuser.org -> Portugesa
      ro.fmuser.org -> Romanian
      ru.fmuser.org -> errusiera
      sr.fmuser.org -> serbiera
      sk.fmuser.org -> Eslovakiera
      sl.fmuser.org -> Slovenian
      es.fmuser.org -> Gaztelania
      sw.fmuser.org -> Swahilia
      sv.fmuser.org -> Suediera
      th.fmuser.org -> Thai
      tr.fmuser.org -> Turkiera
      uk.fmuser.org -> ukrainera
      ur.fmuser.org -> urdua
      vi.fmuser.org -> Vietnamese
      cy.fmuser.org -> galesera
      yi.fmuser.org -> Yiddish

       
  •  

    FMUSER Wirless Transmit Video and Audio Errazago!

  • Harremanetarako

    Helbidea:
    305. zenbakia Gela HuiLan eraikina No.273 Huanpu Road Guangzhou Txina 510620

    E-mail:
    [posta elektroniko bidez babestua]

    Tel / WhatApps:
    + 8618078869184

  • Kategoriak

  • Buletina

    LEHENENGOA EDO IZEN OSOA

    Emaila

  • paypal irtenbide  Western UnionBank of China
    E-mail:[posta elektroniko bidez babestua]   WhatsApp: +8618078869184 Skype: sky198710021 me berriketa
    Copyright 2006-2020 Powered By www.fmuser.org

    Contact