Fideo Trosglwyddo Wirless FMUSER A Sain Yn Haws!

[e-bost wedi'i warchod] WhatsApp + 8618078869184
iaith

    Esboniad manwl o Broadcast yn Android

     

    Rhennir darlledu yn ddau fath gwahanol: "Darllediadau arferol" a "Darllediadau gorfodol". Mae darllediad cyffredin yn hollol anghymesur a gall pob derbynnydd darlledu ei dderbyn ar yr un pryd (yn rhesymegol). Mae effeithlonrwydd cyflwyno neges yn gymharol uchel, ond yr anfantais yw na all y derbynnydd drosglwyddo'r canlyniad prosesu i'r derbynnydd nesaf, ac ni ellir ei derfynu. Lluosogi Bwriad Darlledu; fodd bynnag, mae darllediad trefnus yn seiliedig ar y flaenoriaeth a ddatganwyd gan y derbynnydd (a ddatganwyd yn yr android: priodoledd blaenoriaeth yr elfen hidlo bwriad, y mwyaf yw'r nifer, yr uchaf yw'r flaenoriaeth, yr ystod werth: -1000 i 1000. Mae hefyd posib Ffoniwch setPriority () y gwrthrych IntentFilter i'w osod), ac mae'r derbynnydd yn derbyn y darllediad yn ei dro. Er enghraifft, os yw lefel A yn uwch na lefel B, a bod lefel B yn uwch na C, yna trosglwyddir y darllediad yn gyntaf i A, yna i B, ac yn olaf i C. Ar ôl i A gael y darllediad, mae'n yn gallu storio data yn y darllediad. Pan anfonir y darllediad i B, gall B gael y data wedi'i storio gan A o'r darllediad.

     

    Cyd-destun.sendBroadcast ()

       Darllediad cyffredin yw'r hyn a anfonir, ac mae pob tanysgrifiwr yn cael cyfle i'w gael a'i brosesu.

     

    Cyd-destun.sendOrderedBroadcast ()

       Mae anfon yn ddarllediad trefnus. Bydd y system yn gweithredu'r derbynyddion fesul un yn unol â'r flaenoriaeth a ddatganwyd gan y derbynnydd. Mae gan y derbynnydd blaenorol yr hawl i derfynu'r darllediad (BroadcastReceiver.abortBroadcast ()). Os caiff y darllediad ei derfynu gan y derbynnydd blaenorol, yr olaf Ni all y derbynnydd gael y darllediad mwyach. Ar gyfer darllediad wedi'i orchymyn, gall y derbynnydd blaenorol storio'r canlyniad prosesu yn y Bwriad darlledu, ac yna ei basio i'r derbynnydd nesaf.

     
    Defnyddir derbynnydd darlledu (BroadcastReceiver) i dderbyn Bwriad darlledu, a gwireddir anfon Bwriad darlledu trwy ffonio Context.sendBroadcast () a Context.sendOrderedBroadcast (). Fel arfer, gellir derbyn Bwriad darlledu gan dderbynyddion darlledu lluosog sydd wedi'u tanysgrifio i'r Bwriad hwn. Mae'r nodwedd hon yn debyg i dderbynyddion negeseuon Pwnc yn JMS. Mae gweithredu dull derbynnydd darlledu fel a ganlyn:

     

    Y cam cyntaf: diffinio'r derbynnydd darlledu, etifeddu BroadcastReceiver, ac ailysgrifennu'r dull onReceive ().

    dosbarth cyhoeddus IncomingSMSReceiver estynBroadcastReceiver {
      Lle gwag cyhoeddus @Override onReceive (Contextcontext, Intentintent) {
      }
    }

     

    Cam 2: Tanysgrifiwch i'r bwriad darlledu a ddarlledir, mae dau ddull tanysgrifio:

    Y math cyntaf: defnyddio cod i danysgrifio (tanysgrifiad deinamig)

    Hidlydd IntentFilter = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
    Derbynnydd IncomingSMSReceiver = newIncomingSMSReceiver ();
    registerReceiver (derbynnydd, hidlydd);

     

    Yr ail fath: Tanysgrifiwch yn y nod yn y ffeil AndroidManifest.xml (tanysgrifiad statig)


      
           
      


    Gadewch i ni edrych ar y gwahaniaeth rhwng tanysgrifiad darlledu deinamig a thanysgrifiad darlledu statig:
    Gelwir darllediad tanysgrifiad statig hefyd: darllediad preswylwyr. Pan fydd eich cais ar gau, os oes neges ddarlledu, gall y derbynnydd darlledu a ysgrifennwyd gennych ei derbyn hefyd. Ei ddull cofrestru yw AndroidManifast yn eich cais. .xml i'w danysgrifio.

     

    Gelwir darllediad tanysgrifiad deinamig hefyd: darllediad dibreswyl. Pan ddaw'r cais i ben, bydd y darllediad yn diflannu'n naturiol. Er enghraifft, rydych chi'n tanysgrifio i'r darllediad yn onCreate neu onResume yn y gweithgaredd, a rhaid i chi ganslo'r tanysgrifiad darlledu yn onDestory neu onPause. Fel arall, bydd eithriad yn cael ei riportio, felly bydd eich derbynnydd darlledu yn ddibreswyl.

     

    Mae un manylyn arall yma sef y ddau ddull tanysgrifio. Wrth anfon darllediadau, mae angen i chi dalu sylw i: Defnyddir y dull bwriad ymhlyg ar gyfer cofrestru deinamig, felly mae angen i chi ddefnyddio bwriad ymhlyg i anfon wrth anfon darllediadau. , Fel arall ni fydd derbynnydd y darllediad yn gallu derbyn y darllediad. Rhowch sylw i'r pwynt hwn. Ond wrth danysgrifio yn statig, oherwydd ei fod wedi'i danysgrifio yn AndroidMainfest.xml, mae'n bosibl defnyddio Bwriad arddangos a Bwriad ymhlyg wrth anfon darllediadau (wrth gwrs mae hyn ar gyfer derbynyddion darlledu a ddiffinnir gennym ni yn unig), felly rhag ofn, rydyn ni'n defnyddio ymhlyg yn gyffredinol. Bwriad anfon darllediad.

     

    Gadewch i ni edrych ar enghraifft:

    Cymerwch gip ar strwythur y prosiect:

     

    Cymerwch gip ar y darllediad tanysgrifiad statig:
    pecyn com.broadcast.demo;

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

    mewnforio com.example.androidbroadcastdemo.R;

    / **
     * Darllediad tanysgrifiad statig
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus StaticRegisterBroadcastActivity yn ymestyn Gweithgaredd {

    @Diystyru
    gwagle gwarchodedig onCreate (Bwndel wedi'i arbedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Botwm btn = (Botwm) findViewById (R.id.btn);
    I
    btn.setOnClickListener (OnClickListener newydd () {
    @Diystyru
    gwagle cyhoeddus onClick (Gweld v) {
    // Defnyddiwch ffordd statig i gofrestru'r darllediad, gallwch ddefnyddio'r bwriad arddangos i anfon y darllediad
    Darllediad bwriadol = Bwriad newydd ("com.broadcast.set.broadcast");
    sendBroadcast (darllediad, null);
    }
    I
    });
    }
    I
    }


    Tanysgrifiwch yn AndroidMainfest.xml:



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

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

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

    Peidiwch â phoeni am y cynnwys arall am y tro, fel y byddwn yn siarad amdano yn nes ymlaen, yma rydym ond yn canolbwyntio ar gofrestru darllediadau statig


          
               
                   
               
           


    Gadewch i ni edrych ar dderbynnydd y darllediad:

    pecyn com.broadcast.receiver;

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

    / **
     * Derbynnydd darlledu
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus UnSortBroadcastReceiver yn estyn BroadcastReceiver {

    @Diystyru
    gwagle cyhoeddus onReceive (Cyd-destun cyd-destun, Bwriad bwriad) {
    Log.e ("Intent_Action:", intent.getAction () + "");
    }

    }
    Mae'r rhesymeg yn y dull onReceive yn y derbynnydd darlledu yn syml iawn, sef argraffu cynnwys y Weithred.
    Rhedeg y rhaglen, mae'r canlyniad yn syml iawn, nid dyma'r llun.

     

    Gadewch i ni edrych ar danysgrifiadau deinamig:


    pecyn com.broadcast.demo;

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

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

    / **
     * Defnyddiwch ffordd ddeinamig i gofrestru darllediad
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus DynamicRegisterBroadcastActivity yn ymestyn Gweithgaredd {
    I
    llinyn terfynol statig cyhoeddus NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
    derbynnydd UnSortBroadcastReceiver gwarchodedig;
    I
    @Diystyru
    gwagle gwarchodedig onCreate (Bwndel wedi'i arbedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    Botwm btn0 = (Botwm) findViewById (R.id.btn);
    btn0.setOnClickListener (OnClickListener newydd () {
    gwagle cyhoeddus onClick (Gweld v) {
    // Anfon darllediad
    Bwriad iddo = Bwriad newydd (NEW_LIFEFORM_DETECTED);
    sendBroadcast (fe);
    }
    });
    }

    @Diystyru
    gwagle gwarchodedig onResume () {
    super.onResume ();
    // Cofrestrwch i'w ddarlledu
    IntentFilter counterActionFilter = IntentFilter newydd (NEW_LIFEFORM_DETECTED);
    derbynnydd = UnSortBroadcastReceiver () newydd;
    registerReceiver (derbynnydd, counterActionFilter);
    }

    @Diystyru
    gwagle gwarchodedig onPause () {
    super.onPause ();
    // Canslo darllediad
    unregisterReceiver (derbynnydd);
    }
    }
    Yma rydym yn tanysgrifio i ddarlledu yn onResume, ac yn dad-danysgrifio i ddarlledu yn onPause.
    Newid y Gweithgaredd a lansiwyd i DynamicRegisterBroadcastActivity yn AndroidMainfest.xml. Nid oes angen addasu'r cynnwys arall. Mae rhedeg y rhaglen ac argraffu'r canlyniad yn syml iawn, felly ni fyddaf yn gweld y llun yma.

     

    Gadewch i ni edrych ar ddarlledu trefnus a darlledu heb orchymyn

    Rydym eisoes wedi crybwyll hyn ar y dechrau, gadewch i ni edrych ar ddarlledu anhrefnus:

    Yn gyntaf rydym yn diffinio dau dderbynnydd darlledu:

    Y derbynnydd darlledu cyntaf:


    pecyn com.broadcast.receiver;

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

    / **
     * Derbynnydd darlledu A.
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus SortBroadcastReceiverA yn estyn BroadcastReceiver {

    @Diystyru
    gwagle cyhoeddus onReceive (Cyd-destun cyd-destun, Bwriad bwriad) {
    Log.e ("Demo:", "derbynnydd darlledu A");
    }

    }
    Yr ail dderbynnydd darlledu:

    pecyn com.broadcast.receiver;

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

    / **
     * Derbynnydd darlledu B.
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus SortBroadcastReceiverB yn estyn BroadcastReceiver {

    @Diystyru
    gwagle cyhoeddus onReceive (Cyd-destun cyd-destun, Bwriad bwriad) {
    Log.e ("Demo:", "Darllediad B");
    }

    I
    I
    }


    Tanysgrifiwch i ddarlledu yn AndroidMainfest.xml


     
               
                   
               

           

               
                   
               

    canlyniad y llawdriniaeth:


    Mae'r canlyniad rhedeg ychydig yn rhyfedd. Pam mae derbynnydd B yn y tu blaen a derbynnydd A yn y cefn? Y rheswm yw, pan fyddwn yn tanysgrifio i'r darllediad yn AndroidMainfest.xml, ein bod yn gosod yr android: gwerth priodoledd blaenoriaeth yn yr hidlydd bwriad. Po fwyaf yw'r gwerth, yr uchaf yw'r flaenoriaeth. , Blaenoriaeth derbynnydd B yw 1000, blaenoriaeth derbynnydd A yw 999, felly mae B yn derbyn y darllediad yn gyntaf, ac yna mae A yn ei dderbyn, ond nid oes cysylltiad rhwng derbynnydd B a derbynnydd A, ac ni all fod unrhyw ryngweithio Oes, oherwydd bod hwn yn ddarllediad allan o drefn ac yn asyncronig, gallwn wneud arbrawf trwy ychwanegu cod at y dull onReceiver yn B:

    abortBroadcast (); // Terfynu trosglwyddiad y darllediad hwn

    canlyniad y llawdriniaeth:

     

    Gallwn weld y gwall prydlon, hynny yw, ni chaniateir i ddarllediad heb orchymyn derfynu'r darllediad. Mewn gwirionedd, mae terfynu yn ddiwerth, oherwydd mae derbynnydd A yn dal i dderbyn y darllediad.

     

    Gadewch i ni edrych ar ddarlledu trefnus, mae angen addasu'r cod:

    Y cyntaf yw wrth anfon darllediad:


    Darllediad bwriadol = Bwriad newydd ("com.broadcast.set.broadcast");
    sendOrderedBroadcast (darllediad, null);
    Yna ychwanegwch ddull i derfynu'r darllediad yn y derbynnydd B:
    abortBroadcast ();

    Nid oes angen addasu'r cod arall, canlyniad y llawdriniaeth:

     

    Dim ond derbynnydd B sydd yno, nid yw derbynnydd A yn derbyn y darllediad, oherwydd bod y darllediad wedi'i derfynu yn nerbynydd B, ac ni all y derbynwyr dilynol ei dderbyn.

    Addaswch y cod isod:

    Derbynnydd B:


    pecyn com.broadcast.receiver;

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

    / **
     * Derbynnydd darlledu B.
     * @awdur weijiang204321
     *
     */
    dosbarth cyhoeddus SortBroadcastReceiverB yn estyn BroadcastReceiver {

    @Diystyru
    gwagle cyhoeddus onReceive (Cyd-destun cyd-destun, Bwriad bwriad) {
    Log.e ("Demo:", "derbynnydd darlledu B");
    Bwndel bwndel = Bwndel newydd ();
    bundle.putString ("next_receiver", "derbynnydd darlledu nesaf");
    setResultExtras (bwndel);
    }
    I
    }
    Ar ôl i B dderbyn y darllediad, mae'n storio rhywfaint o werth ac yn ei drosglwyddo i'r derbynnydd nesaf.


    Cod derbynnydd A:


    pecyn com.broadcast.receive

     

     

     

     

    Rhestrwch yr holl Cwestiwn

    llysenw

    E-bost

    cwestiynau

    Mae ein cynnyrch eraill:

    Pecyn Offer Gorsaf Radio FM Proffesiynol

     



     

    Ateb Gwesty IPTV

     


      Rhowch e-bost i gael syrpréis

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Affricaneg
      sq.fmuser.org -> Albaneg
      ar.fmuser.org -> Arabeg
      hy.fmuser.org -> Armeneg
      az.fmuser.org -> Aserbaijani
      eu.fmuser.org -> Basgeg
      be.fmuser.org -> Belarwseg
      bg.fmuser.org -> Bwlgaria
      ca.fmuser.org -> Catalaneg
      zh-CN.fmuser.org -> Tsieineaidd (Syml)
      zh-TW.fmuser.org -> Tsieineaidd (Traddodiadol)
      hr.fmuser.org -> Croateg
      cs.fmuser.org -> Tsiec
      da.fmuser.org -> Daneg
      nl.fmuser.org -> Iseldireg
      et.fmuser.org -> Estoneg
      tl.fmuser.org -> Ffilipineg
      fi.fmuser.org -> Ffinneg
      fr.fmuser.org -> Ffrangeg
      gl.fmuser.org -> Galisia
      ka.fmuser.org -> Sioraidd
      de.fmuser.org -> Almaeneg
      el.fmuser.org -> Groeg
      ht.fmuser.org -> Haitian Creole
      iw.fmuser.org -> Hebraeg
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Hwngari
      is.fmuser.org -> Gwlad yr Iâ
      id.fmuser.org -> Indonesia
      ga.fmuser.org -> Gwyddeleg
      it.fmuser.org -> Eidaleg
      ja.fmuser.org -> Japaneaidd
      ko.fmuser.org -> Corea
      lv.fmuser.org -> Latfia
      lt.fmuser.org -> Lithwaneg
      mk.fmuser.org -> Macedoneg
      ms.fmuser.org -> Maleieg
      mt.fmuser.org -> Malteg
      no.fmuser.org -> Norwyeg
      fa.fmuser.org -> Perseg
      pl.fmuser.org -> Pwyleg
      pt.fmuser.org -> Portiwgaleg
      ro.fmuser.org -> Rwmaneg
      ru.fmuser.org -> Rwseg
      sr.fmuser.org -> Serbeg
      sk.fmuser.org -> Slofacia
      sl.fmuser.org -> Slofenia
      es.fmuser.org -> Sbaeneg
      sw.fmuser.org -> Swahili
      sv.fmuser.org -> Sweden
      th.fmuser.org -> Thai
      tr.fmuser.org -> Twrceg
      uk.fmuser.org -> Wcrain
      ur.fmuser.org -> Wrdw
      vi.fmuser.org -> Fietnam
      cy.fmuser.org -> Cymraeg
      yi.fmuser.org -> Iddew-Almaeneg

       
  •  

    Fideo Trosglwyddo Wirless FMUSER A Sain Yn Haws!

  • Cysylltu

    Cyfeiriad:
    Rhif 305 Ystafell HuiLan Adeilad Rhif.273 Huanpu Road Guangzhou China 510620

    E-bost:
    [e-bost wedi'i warchod]

    Ffôn / WhatApps:
    +8618078869184

  • Categoriau

  • Cylchlythyr

    ENW CYNTAF NEU LLAWN

    E-bost

  • ateb payPal  Undeb gorllewinolBanc OF Tsieina
    E-bost:[e-bost wedi'i warchod]   WhatsApp: +8618078869184 Skype: sky198710021 Sgwrs gyda mi
    Hawlfraint 2006-2020 Powered By www.fmuser.org

    Cysylltu â ni