FMUSER Físeán Tarchur Wirless Agus Fuaim Níos Éasca!

[ríomhphost faoi chosaint] WhatsApp +8618078869184
teanga

    Míniú mionsonraithe ar Broadcast in Android

     

    Tá an craoltóireacht roinnte ina dhá chineál éagsúla: "Gnáthchraoltaí" agus "Craoltaí Ordaithe". Tá gnáthchraoladh go hiomlán asincrónach agus is féidir le gach glacadóir craolacháin é a fháil ag an am céanna (go loighciúil). Tá éifeachtúlacht seachadta teachtaireachta réasúnta ard, ach is é an míbhuntáiste nach féidir leis an nglacadóir an toradh próiseála a chur ar aghaidh chuig an gcéad ghlacadóir eile, agus ní féidir é a fhoirceannadh. Iomadú Intinne Craolacháin; áfach, tá craoladh ordaithe bunaithe ar an tosaíocht a dhearbhaíonn an glacadóir (dearbhaithe san android: tréith tosaíochta an eilimint scagaire intinne, is mó an uimhir, is airde an tosaíocht, an raon luacha: -1000 go 1000. Tá sé ann freisin is féidir Glaoigh ar an tacarPriority () den réad IntentFilter a shocrú), agus faigheann an faighteoir an craoladh ar a seal. Mar shampla, má tá leibhéal A níos airde ná leibhéal B, agus leibhéal B níos airde ná C, ansin tarchuirtear an craoladh chuig A, ansin go B, agus ar deireadh chuig C. Tar éis do A an craoladh a fháil, déanann sé in ann sonraí a stóráil sa chraoladh. Nuair a sheoltar an craoladh chuig B, is féidir le B na sonraí a stóráil ag A ón gcraoladh.

     

    Comhthéacs.sendBroadcast ()

       Is gnáthchraoladh an rud a sheoltar, agus bíonn an deis ag gach síntiúsóir é a fháil agus a phróiseáil.

     

    Comhthéacs.sendOrderedBroadcast ()

       Craoladh ordúil is ea an seoladh. Déanfaidh an córas na glacadóirí a fhorghníomhú ceann ar cheann de réir na tosaíochta a dhearbhaíonn an glacadóir. Tá sé de cheart ag an nglacadóir roimhe seo an craoladh a fhoirceannadh (BroadcastReceiver.abortBroadcast ()). Má chuireann an glacadóir roimhe seo deireadh leis an gcraoladh, an dara ceann Ní féidir leis an nglacadóir an craoladh a fháil a thuilleadh. Maidir le craoladh ordaithe, is féidir leis an nglacadóir roimhe seo an toradh próiseála a stóráil sa Intinn chraolta, agus ansin é a chur ar aghaidh chuig an gcéad ghlacadóir eile.

     
    Úsáidtear glacadóir craolacháin (BroadcastReceiver) chun Intinn chraolta a fháil, agus déantar Intinn craolta a sheoladh trí ghlaoch ar Context.sendBroadcast () agus Context.sendOrderedBroadcast (). De ghnáth is féidir le glacadóirí ilchraolta atá suibscríofa leis an Intinn seo Intinn craolta a fháil. Tá an ghné seo cosúil le glacadóirí teachtaireachta Topaic i JMS. Seo a leanas modh glacadóra craolta:

     

    An chéad chéim: sainmhínigh an glacadóir craolta, oidhreacht BroadcastReceiver, agus athscríobh an modh onReceive ().

    aicme phoiblí IncomingSMSReceiver extendBroadcastReceiver {
      Neamhní poiblí @Override onReceive (Contextcontext, Intentintent) {
      }
    }

     

    Céim 2: Liostáil leis an intinn craolta spéise, tá dhá mhodh síntiúis ann:

    An chéad chineál: bain úsáid as cód le liostáil (síntiús dinimiciúil)

    Scagaire IntentFilter = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
    Glacadóir IncomingSMSReceiver = newIncomingSMSReceiver ();
    registerReceiver (glacadóir, scagaire);

     

    An dara cineál: Liostáil sa nód sa chomhad AndroidManifest.xml (síntiús statach)


      
           
      


    Breathnaímid ar an difríocht idir síntiús craolacháin dinimiciúil agus síntiús craolta statach:
    Tugtar craoladh síntiús statach freisin: craoladh cónaitheach. Nuair a bhíonn d’iarratas dúnta, má tá teachtaireacht craolta ann, is féidir leis an nglacadóir craolacháin a scríobh tú é a fháil freisin. Is é an modh cláraithe atá aige ná AndroidManifast i d’iarratas. .xml le haghaidh síntiúis.

     

    Tugtar craoladh dinimiciúil síntiús freisin: craoladh neamhchónaitheach. Nuair a thiocfaidh deireadh leis an bhfeidhmchlár, beidh an craoladh imithe go nádúrtha. Mar shampla, liostálann tú leis an gcraoladh in onCreate nó onResume sa ghníomhaíocht, agus ní mór duit an síntiús craolta a chealú in onDestory nó onPause. Seachas sin, tabharfar tuairisc ar eisceacht, mar sin beidh do ghlacadóir craolta neamhchónaitheach.

     

    Tá mionsonra amháin eile anseo is é sin an dá mhodh síntiúis. Agus craoltaí á seoladh agat, ní mór duit aird a thabhairt ar: Úsáidtear an modh intinne intuigthe le haghaidh clárú dinimiciúil, mar sin ní mór duit rún intuigthe a úsáid chun craoltaí a sheoladh. Seachas sin ní bheidh an glacadóir craolta in ann an craoladh a fháil. Tabhair aird ar an bpointe seo. Ach nuair a bhíonn tú ag suibscríobh go statach, toisc go bhfuil sé suibscríofa in AndroidMainfest.xml, is féidir Intinn taispeána agus Intinn intuigthe a úsáid agus craoltaí á seoladh (ar ndóigh níl sé seo ach do ghlacadóirí craolta atá sainithe againn féin), mar sin ar eagla na heagla, go ginearálta úsáidimid intuigthe Intinn craoladh a sheoladh.

     

    Breathnaímid ar shampla:

    Féach ar struchtúr an tionscadail:

     

    Féach ar an gcraoladh síntiús statach:
    pacáiste com.broadcast.demo;

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

    allmhairiú com.example.androidbroadcastdemo.R;

    / **
     * Craoladh síntiús statach
     * @údar weijiang204321
     *
     */
    aicme phoiblí StaticRegisterBroadcastActivity ag leathnú Gníomhaíocht {

    @Sárú
    neamhní faoi chosaint arCreate (Beart sábhálaInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Cnaipe btn = (Cnaipe) findViewById (R.id.btn);
    Chun
    btn.setOnClickListener (OnClickListener nua () {
    @Sárú
    neamhní poiblí onClick (Amharc v) {
    // Úsáid bealach statach chun an craoladh a chlárú, is féidir leat an rún taispeána a úsáid chun an craoladh a sheoladh
    Craoladh intinne = Intinn nua ("com.broadcast.set.broadcast");
    sendBroadcast (craoladh, null);
    }
    Chun
    });
    }
    Chun
    }


    Liostáil in AndroidMainfest.xml:



    <xmlns léir: android="
    http://schemas.android.com/apk/res/android"
        pacáiste = "com.example.androidbroadcastdemo"
        android: versionCode = "1"
        android: versionName = "1.0">

        < úsáideann-sdk
            android: minSdkVersion = "8"
            android: targetSdkVersion = "18" />
       
       
       
       
       
       

        < iarratas
            android: allowBackup = "fíor"
            android: icon = "@ drawable / ic_launcher"
            android: label = "@ string / app_name"
            android: theme = "@ style / AppTheme">
            < gníomhaíocht
                android: name = "com.broadcast.demo.StaticRegisterBroadcastActivity"
                android: label = "@ string / app_name">
               
                   
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
       

    Ná bíodh imní ort faoin ábhar eile anois, mar a mbeimid ag caint faoi níos déanaí, anseo ní dhírímid ach ar chraoltaí statacha a chlárú


          
               
                   
               
           


    Breathnaímid ar ghlacadóir an chraolta:

    pacáiste com.broadcast.receiver;

    allmhairiú android.content.BroadcastReceiver;
    allmhairiú android.content.Context;
    allmhairiú android.content.Intent;
    allmhairiú android.util.Log;

    / **
     * Glacadóir craolta
     * @údar weijiang204321
     *
     */
    aicme phoiblí UnSortBroadcastReceiver ag leathnú BroadcastReceiver {

    @Sárú
    neamhní poiblí onReceive (Comhthéacs comhthéacs, rún intinne) {
    Log.e ("Intent_Action:", intent.getAction () + "");
    }

    }
    Tá an loighic sa mhodh onReceive sa ghlacadóir craolta an-simplí, is é sin ábhar an Ghnímh a phriontáil.
    Rith an clár, tá an toradh an-simplí, ní anseo an pictiúr.

     

    A ligean ar ghlacadh le breathnú ar síntiúis dinimiciúla:


    pacáiste com.broadcast.demo;

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

    allmhairiú com.broadcast.receiver.UnSortBroadcastReceiver;
    allmhairiú com.example.androidbroadcastdemo.R;

    / **
     * Úsáid bealach dinimiciúil chun craoladh a chlárú
     * @údar weijiang204321
     *
     */
    aicme phoiblí DynamicRegisterBroadcastActivity ag leathnú Gníomhaíocht {
    Chun
    Teaghrán deiridh statach poiblí NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
    glacadóir UnSortBroadcastReceiver faoi chosaint;
    Chun
    @Sárú
    neamhní faoi chosaint arCreate (Beart sábhálaInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Cnaipe btn0 = (Cnaipe) findViewById (R.id.btn);
    btn0.setOnClickListener (OnClickListener nua () {
    neamhní poiblí onClick (Amharc v) {
    // Seol craoladh
    Intinn é = Intinn nua (NEW_LIFEFORM_DETECTED);
    sendBroadcast (é);
    }
    });
    }

    @Sárú
    neamhní faoi chosaint arResume () {
    super.onResume ();
    // Cláraigh le haghaidh craolta
    IntentFilter counterActionFilter = IntentFilter nua (NEW_LIFEFORM_DETECTED);
    glacadóir = UnSortBroadcastReceiver nua ();
    registerReceiver (glacadóir, counterActionFilter);
    }

    @Sárú
    neamhní faoi chosaint arPuse () {
    super.onPause ();
    // Cealaigh craoladh
    unregisterReceiver (glacadóir);
    }
    }
    Anseo táimid ag suibscríobh le craoladh in onResume, agus ag díliostáil le craoladh in onPause.
    Athraigh an Ghníomhaíocht seolta go DynamicRegisterBroadcastActivity in AndroidMainfest.xml. Ní gá an t-ábhar eile a mhodhnú. Rith an clár agus priontáil an toradh an-simplí, mar sin ní fheicfidh mé an pictiúr anseo.

     

    A ligean ar ghlacadh le breathnú ar craolachán ordaithe agus craolachán neamhordúil

    Tá sé seo luaite againn cheana ag an tús, déanaimis féachaint ar chraoltóireacht neamhordúil:

    Ar dtús sainímid dhá ghlacadóir craolta:

    An chéad ghlacadóir craolta:


    pacáiste com.broadcast.receiver;

    allmhairiú android.content.BroadcastReceiver;
    allmhairiú android.content.Context;
    allmhairiú android.content.Intent;
    allmhairiú android.util.Log;

    / **
     * Glacadóir craolta A.
     * @údar weijiang204321
     *
     */
    aicme phoiblí SortBroadcastReceiverA ag leathnú BroadcastReceiver {

    @Sárú
    neamhní poiblí onReceive (Comhthéacs comhthéacs, rún intinne) {
    Log.e ("Taispeántas:", "glacadóir craolta A");
    }

    }
    An dara glacadóir craolta:

    pacáiste com.broadcast.receiver;

    allmhairiú android.content.BroadcastReceiver;
    allmhairiú android.content.Context;
    allmhairiú android.content.Intent;
    allmhairiú android.util.Log;

    / **
     * Glacadóir craolta B.
     * @údar weijiang204321
     *
     */
    aicme phoiblí SortBroadcastReceiverB ag leathnú BroadcastReceiver {

    @Sárú
    neamhní poiblí onReceive (Comhthéacs comhthéacs, rún intinne) {
    Log.e ("Taispeántas:", "Craoladh B");
    }

    Chun
    Chun
    }


    Liostáil le craoladh in AndroidMainfest.xml


     
               
                   
               

           

               
                   
               

    toradh oibríochta:


    Tá an toradh reatha rud beag aisteach. Cén fáth go bhfuil glacadóir B sa tosaigh agus glacadóir A sa chúl? Is é an chúis atá leis ná nuair a dhéanaimid liostáil leis an gcraoladh in AndroidMainfest.xml, socraímid an android: luach tréithe tosaíochta sa scagaire intinne. Is mó an luach, is airde an tosaíocht. , Is é 1000 tosaíocht ghlacadóir B, is é 999 tosaíocht ghlacadóra A, mar sin faigheann B an craoladh ar dtús, agus ansin faigheann A é, ach níl aon cheangal idir glacadóir B agus glacadóir A, agus ní féidir aon idirghníomhaíocht a bheith ann Sea, toisc gur craoladh as ord agus asincrónach é seo, is féidir linn turgnamh a dhéanamh trí chód a chur leis an modh onReceiver i B:

    abortBroadcast (); // Cuir deireadh le tarchur an chraolta seo

    toradh oibríochta:

     

    Is féidir linn an earráid phras a fheiceáil, is é sin, ní cheadaítear do chraoladh neamhordúil an craoladh a fhoirceannadh. Déanta na fírinne, ní féidir an foirceannadh a úsáid, toisc go bhfaigheann glacadóir A an craoladh fós.

     

    Breathnaímid ar chraoladh ordúil, is gá an cód a mhodhnú:

    Is é an chéad cheann ná craoladh a sheoladh:


    Craoladh intinne = Intinn nua ("com.broadcast.set.broadcast");
    sendOrderedBroadcast (craoladh, null);
    Ansin cuir modh leis chun an craoladh sa ghlacadóir B a fhoirceannadh:
    abortBroadcast ();

    Ní gá an cód eile a mhodhnú, toradh na hoibríochta:

     

    Níl ann ach glacadóir B, ní fhaigheann glacadóir A an craoladh, toisc go gcuirtear deireadh leis an gcraoladh i nglacadóir B, agus ní féidir leis na glacadóirí ina dhiaidh sin glacadh leis.

    Athraigh an cód thíos:

    Faighteoir B:


    pacáiste com.broadcast.receiver;

    allmhairiú android.content.BroadcastReceiver;
    allmhairiú android.content.Context;
    allmhairiú android.content.Intent;
    allmhairiú android.os.Bundle;
    allmhairiú android.util.Log;

    / **
     * Glacadóir craolta B.
     * @údar weijiang204321
     *
     */
    aicme phoiblí SortBroadcastReceiverB ag leathnú BroadcastReceiver {

    @Sárú
    neamhní poiblí onReceive (Comhthéacs comhthéacs, rún intinne) {
    Log.e ("Taispeántas:", "glacadóir craolta B");
    Bundle bundle = Beart nua ();
    bundle.putString ("next_receiver", "an chéad ghlacadóir craolta eile");
    setResultExtras (bundle);
    }
    Chun
    }
    Tar éis do B an craoladh a fháil, stórálann sé luach éigin agus cuireann sé ar aghaidh chuig an gcéad ghlacadóir eile é.


    Cód Glacadóra A:


    pacáiste com.broadcast.receive

     

     

     

     

    Liostaigh na Ceist

    leasainm

    Ríomhphost

    Ceisteanna

    Ár táirge eile:

    Pacáiste Trealamh Stáisiún Raidió FM Gairmiúla

     



     

    Óstán IPTV Réiteach

     


      Iontráil r-phost chun iontas a fháil

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afracáinis
      sq.fmuser.org -> Albáinis
      ar.fmuser.org -> Araibis
      hy.fmuser.org -> Airméinis
      az.fmuser.org -> Asarbaiseáinis
      eu.fmuser.org -> Bascais
      be.fmuser.org -> Bealarúisis
      bg.fmuser.org -> Bulgáiris
      ca.fmuser.org -> Catalóinis
      zh-CN.fmuser.org -> Sínis (Simplithe)
      zh-TW.fmuser.org -> Sínis (Traidisiúnta)
      hr.fmuser.org -> Cróitis
      cs.fmuser.org -> Seiceach
      da.fmuser.org -> Danmhairgis
      nl.fmuser.org -> Ollainnis
      et.fmuser.org -> Eastóinis
      tl.fmuser.org -> Filipíneach
      fi.fmuser.org -> Fionlainnis
      fr.fmuser.org -> Fraincis
      gl.fmuser.org -> Gailísis
      ka.fmuser.org -> Seoirseach
      de.fmuser.org -> Gearmáinis
      el.fmuser.org -> Gréigis
      ht.fmuser.org -> Haitian Creole
      iw.fmuser.org -> Eabhrais
      hi.fmuser.org -> Hiondúis
      hu.fmuser.org -> Ungáiris
      is.fmuser.org -> Íoslainnis
      id.fmuser.org -> Indinéisis
      ga.fmuser.org -> Gaeilge
      it.fmuser.org -> Iodáilis
      ja.fmuser.org -> Seapáinis
      ko.fmuser.org -> Cóiréis
      lv.fmuser.org -> Laitvis
      lt.fmuser.org -> Liotuáinis
      mk.fmuser.org -> Macadóinis
      ms.fmuser.org -> Malaeis
      mt.fmuser.org -> Máltais
      no.fmuser.org -> Ioruais
      fa.fmuser.org -> Peirsis
      pl.fmuser.org -> Polainnis
      pt.fmuser.org -> Portaingéilis
      ro.fmuser.org -> Rómáinis
      ru.fmuser.org -> Rúisis
      sr.fmuser.org -> Seirbis
      sk.fmuser.org -> An tSlóvaic
      sl.fmuser.org -> Slóivéinis
      es.fmuser.org -> Spáinnis
      sw.fmuser.org -> Svahaílis
      sv.fmuser.org -> Sualainnis
      th.fmuser.org -> Téalainnis
      tr.fmuser.org -> Tuircis
      uk.fmuser.org -> Úcráinis
      ur.fmuser.org -> Urdais
      vi.fmuser.org -> Vítneam
      cy.fmuser.org -> Breatnais
      yi.fmuser.org -> Giúdais

       
  •  

    FMUSER Físeán Tarchur Wirless Agus Fuaim Níos Éasca!

  • Déan teagmháil

    seoladh:
    Uimh. 305 Seomra Foirgneamh HuiLan Uimh.273 Bóthar Huanpu Guangzhou An tSín 510620

    R-phost:
    [ríomhphost faoi chosaint]

    Teil / WhatApps:
    + 8618078869184

  • Catagóirí

  • Nuachtlitir

    AN CHÉAD NÓ AINM IOMLÁN

    Ríomhphost

  • réiteach PayPal  Aontas IartharBanc OF tSín
    R-phost:[ríomhphost faoi chosaint]   WhatsApp: +8618078869184 Skype: sky198710021 Comhrá le liom
    Cóipcheart 2006-2020 Powered By www.fmuser.org

    Teagmháil