ФМУСЕР бежични пренос видеа и звука лакше!

[емаил заштићен] ВхатсАпп +8618078869184
Језик

    Детаљно објашњење емитовања у Андроиду

     

    Емитовање је подељено на две различите врсте: „Уобичајена емитовања“ и „Наручена емитовања“. Обично емитовање је потпуно асинхроно и могу га прихватити сви пријемници емитовања истовремено (логично). Ефикасност испоруке порука је релативно висока, али недостатак је што пријемник не може проследити резултат обраде следећем примаоцу и не може се прекинути. Ширење намере ширења; међутим, уређено емитовање заснива се на приоритету који је прогласио прималац (декларисан у андроид: аттрибуте приорити елемента филтер намере, што је већи број, већи је приоритет, опсег вредности: -1000 до 1000 могуће Позовите сетПриорити () објекта ИнтентФилтер који желите поставити), а прималац редом прима емисију. На пример, ако је ниво А виши од нивоа Б, а ниво Б већи од Ц, онда се емитовање прво преноси у А, затим у Б и на крају у Ц. Након што А добије емитовање, могу да чувају податке у емисији. Када се емисија пошаље на Б, Б може да добије податке које је А сачувао из емитовања.

     

    Цонтект.сендБроадцаст ()

       Послано је обично емитовање и сви претплатници имају прилику да га прибаве и обраде.

     

    Цонтект.сендОрдередБроадцаст ()

       Слање је уредно емитовање. Систем ће извршавати пријемнике један по један у складу са приоритетом који је прогласио пријемник. Претходни пријемник има право да прекине емитовање (БроадцастРецеивер.абортБроадцаст ()). Ако емитовање прекине претходни пријемник, овај други пријемник више не може да прими емитовање. За наручено емитовање, претходни пријемник може да ускладишти резултат обраде у намери емитовања, а затим га проследи следећем пријемнику.

     
    Пријемник за емитовање (БроадцастРецеивер) користи се за пријем намере емитовања, а слање намере емитовања остварује се позивањем Цонтект.сендБроадцаст () и Цонтект.сендОрдередБроадцаст (). Обично емитовану намеру може да прими више емитованих пријемника који су претплаћени на ову намеру. Ова функција је слична пријемницима порука Топиц у ЈМС-у. Метода пријемног емитовања је следећа:

     

    Први корак: дефинишите пријемник за емитовање, наследите БроадцастРецеивер и препишите методу онРецеиве ().

    јавна класа ИнцомингСМСРецеивер ектендсБроадцастРецеивер {
      @Преузми јавну празнину наРецеиве (Цонтектцонтект, Интентинтент) {
      }
    }

     

    Корак 2: Претплатите се на емитовање Намера интереса, постоје два начина претплате:

    Први тип: користите код за претплату (динамичка претплата)

    ИнтентФилтер филтер = невИнтентФилтер ("андроид.провидер.Телепхони.СМС_РЕЦЕИВЕД");
    ИнцомингСМСРецеивер рецеивер = невИнцомингСМСРецеивер ();
    регистерРецеивер (пријемник, филтер);

     

    Други тип: Претплатите се на чвор у датотеци АндроидМанифест.кмл (статичка претплата)


      
           
      


    Погледајмо разлику између претплате на динамичко емитовање и претплате на статичко емитовање:
    Статичка претплата се такође назива: резидентна емисија. Када је ваша апликација затворена, ако постоји емитована порука, пријемник емитовања који сте написали такође може да је прими. Његов начин регистрације је АндроидМанифаст у вашој апликацији. .кмл за претплату.

     

    Динамичко емитовање претплате назива се и: нерезидентно емитовање. Када се апликација заврши, емитовање ће природно нестати. На пример, претплатили сте се на емитовање у онЦреате или онРесуме у активности, а претплату на емитовање морате отказати у онДестори или онПаусе. У супротном, пријавиће се изузетак, па ће ваш пријемник за емитовање бити нерезидент.

     

    Овде постоји још један детаљ, а то су две методе претплате. Када шаљете емисије, морате обратити пажњу на: Метода имплицитне намере користи се за динамичку регистрацију, тако да приликом слања емисија морате користити имплицитну намеру за слање. , Иначе пријемник емитовања неће моћи да прими емитовање. Обратите пажњу на ову тачку. Али када се претплатите статички, јер је претплаћен на АндроидМаинфест.кмл, могуће је користити дисплаи Интент и имплицитну Интент при слању емисија (наравно ово је само за пријемнике емитовања које смо сами дефинисали), па за сваки случај обично користимо имплицитне Намера слања емитовања.

     

    Погледајмо пример:

    Погледајте структуру пројекта:

     

    Погледајте статично емитовање претплате:
    пакет цом.броадцаст.демо;

    импорт андроид.апп.Ацтивити;
    импорт андроид.цонтент.Интент;
    импорт андроид.ос.Бундле;
    импорт андроид.виев.Виев;
    импорт андроид.виев.Виев.ОнЦлицкЛистенер;
    импорт андроид.видгет.Буттон;

    импорт цом.екампле.андроидброадцастдемо.Р;

    / **
     * Статичко емитовање претплате
     * @аутхор веијианг204321
     *
     */
    јавна класа СтатицРегистерБроадцастАцтивити проширује активност {

    @Прегазити
    заштићена празнина онЦреате (Бундле саведИнстанцеСтате) {
    супер.онЦреате (саведИнстанцеСтате);
    сетЦонтентВиев (Р.лаиоут.ацтивити_маин);
    Дугме бтн = (Дугме) финдВиевБиИд (Р.ид.бтн);
    До
    бтн.сетОнЦлицкЛистенер (нови ОнЦлицкЛистенер () {
    @Прегазити
    јавна празнина онЦлицк (Приказ в) {
    // Користите статички начин за регистрацију емитовања, можете користити намеру екрана за слање емисије
    Емитовање намера = нова намера ("цом.броадцаст.сет.броадцаст");
    сендБроадцаст (емитовање, нула);
    }
    До
    });
    }
    До
    }


    Претплатите се на АндроидМаинфест.кмл:



    <манифест кмлнс:андроид="
    http://schemas.android.com/apk/res/android"
        пацкаге = "цом.екампле.андроидброадцастдемо"
        андроид: версионЦоде = "1"
        андроид: версионНаме = "1.0">

        <усес-сдк
            андроид: минСдкВерсион = "8"
            андроид: таргетСдкВерсион = "18" />
       
       
       
       
       
       

        <апплицатион
            андроид: алловБацкуп = "тачно"
            андроид: ицон = "@ дравабле / иц_лаунцхер"
            андроид: лабел = "@ стринг / апп_наме"
            андроид: тхеме = "@ стиле / АппТхеме">
            <активност
                андроид: наме = "цом.броадцаст.демо.СтатицРегистерБроадцастАцтивити"
                андроид: лабел = "@ стринг / апп_наме">
               
                   
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
       

    За сада не брините о другом садржају, о чему ћемо разговарати касније, овде се фокусирамо само на регистрацију статичних емисија


          
               
                   
               
           


    Погледајмо пријемник емисије:

    пакет цом.броадцаст.рецеивер;

    импорт андроид.цонтент.БроадцастРецеивер;
    импорт андроид.цонтент.Цонтект;
    импорт андроид.цонтент.Интент;
    импорт андроид.утил.Лог;

    / **
     * Емитовани пријемник
     * @аутхор веијианг204321
     *
     */
    јавна класа УнСортБроадцастРецеивер проширује БроадцастРецеивер {

    @Прегазити
    јавна празнина онРецеиве (контекст контекста, намера намере) {
    Лог.е ("Интент_Ацтион:", интент.гетАцтион () + "");
    }

    }
    Логика методе онРецеиве у емитованом пријемнику је врло једноставна, а то је штампање садржаја акције.
    Покрените програм, резултат је врло једноставан, овде није слика.

     

    Погледајмо динамичке претплате:


    пакет цом.броадцаст.демо;

    импорт андроид.апп.Ацтивити;
    импорт андроид.цонтент.Интент;
    импорт андроид.цонтент.ИнтентФилтер;
    импорт андроид.ос.Бундле;
    импорт андроид.виев.Виев;
    импорт андроид.виев.Виев.ОнЦлицкЛистенер;
    импорт андроид.видгет.Буттон;

    импорт цом.броадцаст.рецеивер.УнСортБроадцастРецеивер;
    импорт цом.екампле.андроидброадцастдемо.Р;

    / **
     * Користите динамички начин за регистрацију емитовања
     * @аутхор веијианг204321
     *
     */
    јавна класа ДинамицРегистерБроадцастАцтивити проширује активност {
    До
    јавни статички завршни низ НЕВ_ЛИФЕФОРМ_ДЕТЕЦТЕД = "цом.дкз.броадцасттест.НЕВ_ЛИФЕФОРМ";
    заштићени пријемник УнСортБроадцастРецеивер;
    До
    @Прегазити
    заштићена празнина онЦреате (Бундле саведИнстанцеСтате) {
    супер.онЦреате (саведИнстанцеСтате);
    сетЦонтентВиев (Р.лаиоут.ацтивити_маин);
    Дугме бтн0 = (Дугме) финдВиевБиИд (Р.ид.бтн);
    бтн0.сетОнЦлицкЛистенер (нови ОнЦлицкЛистенер () {
    јавна празнина онЦлицк (Приказ в) {
    // Пошаљите емитовање
    Намера ит = нова намера (НЕВ_ЛИФЕФОРМ_ДЕТЕЦТЕД);
    сендБроадцаст (ит);
    }
    });
    }

    @Прегазити
    заштићена празнина онРесуме () {
    супер.онРесуме ();
    // Региструјте се за емитовање
    ИнтентФилтер цоунтерАцтионФилтер = нови ИнтентФилтер (НЕВ_ЛИФЕФОРМ_ДЕТЕЦТЕД);
    пријемник = нови УнСортБроадцастРецеивер ();
    регистерРецеивер (пријемник, цоунтерАцтионФилтер);
    }

    @Прегазити
    заштићена празнина онПаусе () {
    супер.онПаусе ();
    // Откажи емитовање
    унрегистерРецеивер (пријемник);
    }
    }
    Овде се претплаћујемо на емитовање у онРесуме, а одјављујемо се на емитовање у онПаусе.
    Промените покренуту Активност у ДинамицРегистерБроадцастАцтивити у АндроидМаинфест.кмл. Остали садржај није потребно модификовати. Покрените програм и испис резултата је врло једноставан, па нећу видети слику овде.

     

    Погледајмо уређено емитовање и неуређено емитовање

    Ово смо већ поменули на почетку, погледајмо неуређено емитовање:

    Прво дефинишемо два пријемника за емитовање:

    Први пријемник за емитовање:


    пакет цом.броадцаст.рецеивер;

    импорт андроид.цонтент.БроадцастРецеивер;
    импорт андроид.цонтент.Цонтект;
    импорт андроид.цонтент.Интент;
    импорт андроид.утил.Лог;

    / **
     * Емитовани пријемник А.
     * @аутхор веијианг204321
     *
     */
    јавна класа СортБроадцастРецеиверА проширује БроадцастРецеивер {

    @Прегазити
    јавна празнина онРецеиве (контекст контекста, намера намере) {
    Лог.е ("Демо:", "емисијски пријемник А");
    }

    }
    Други емитовани пријемник:

    пакет цом.броадцаст.рецеивер;

    импорт андроид.цонтент.БроадцастРецеивер;
    импорт андроид.цонтент.Цонтект;
    импорт андроид.цонтент.Интент;
    импорт андроид.утил.Лог;

    / **
     * Емитовани пријемник Б.
     * @аутхор веијианг204321
     *
     */
    јавна класа СортБроадцастРецеиверБ проширује БроадцастРецеивер {

    @Прегазити
    јавна празнина онРецеиве (контекст контекста, намера намере) {
    Лог.е („Демо:“, „Броадцаст Б“);
    }

    До
    До
    }


    Претплатите се на емитовање у програму АндроидМаинфест.кмл


     
               
                   
               

           

               
                   
               

    резултат операције:


    Резултати трчања су помало чудни. Зашто је пријемник Б напред, а пријемник А позади? Разлог је тај што када се претплатимо на емитовање у програму АндроидМаинфест.кмл, поставимо вредност атрибута андроид: приорити у филтру намера. Што је вредност већа, приоритет је већи. , Приоритет пријемника Б је 1000, приоритет пријемника А је 999, па Б прво прима емитовање, а затим га прима А, али не постоји веза између пријемника Б и пријемника А и не може бити интеракције Да, јер је ово емитовање ван редоследа и асинхрони, можемо да изведемо експеримент додавањем кода методи онРецеивер у Б:

    абортБроадцаст (); // Прекини пренос овог емитовања

    резултат операције:

     

    Видимо брзу грешку, односно неуређено емитовање не сме да прекине емитовање. У ствари, раскид је бескористан, јер пријемник А и даље прима емитовање.

     

    Погледајмо уредно емитовање, код треба изменити:

    Прва је приликом слања емисије:


    Емитовање намера = нова намера ("цом.броадцаст.сет.броадцаст");
    сендОрдередБроадцаст (емитовање, нулл);
    Затим додајте методу за прекид емитовања у Б пријемнику:
    абортБроадцаст ();

    Други код није потребно модификовати, резултат операције:

     

    Постоји само пријемник Б, пријемник А не прима емитовање, јер се емитовање завршава у пријемнику Б, а следећи пријемници то не могу прихватити.

    Измените доњи код:

    Прималац Б:


    пакет цом.броадцаст.рецеивер;

    импорт андроид.цонтент.БроадцастРецеивер;
    импорт андроид.цонтент.Цонтект;
    импорт андроид.цонтент.Интент;
    импорт андроид.ос.Бундле;
    импорт андроид.утил.Лог;

    / **
     * Емитовани пријемник Б.
     * @аутхор веијианг204321
     *
     */
    јавна класа СортБроадцастРецеиверБ проширује БроадцастРецеивер {

    @Прегазити
    јавна празнина онРецеиве (контекст контекста, намера намере) {
    Лог.е ("Демо:", "радио пријемник Б");
    Пакет снопа = нови Бундле ();
    бундле.путСтринг ("нект_рецеивер", "нект емисијски пријемник");
    сетРесултЕктрас (пакет);
    }
    До
    }
    Након што Б прими емитовање, чува неку вредност и прослеђује је следећем пријемнику.


    Шифра пријемника А:


    пакет цом.броадцаст.рецеиве

     

     

     

     

    Лист сва питања

    надимак

    Е-pošta

    Питања

    Наша друга производ:

    Професионални пакет опреме за ФМ радио станице

     



     

    Хотелско ИПТВ решење

     


      Унесите е-пошту да бисте добили изненађење

      фмусер.орг

      ес.фмусер.орг
      ит.фмусер.орг
      фр.фмусер.орг
      де.фмусер.орг
      аф.фмусер.орг -> африкаанс
      ск.фмусер.орг -> албански
      ар.фмусер.орг -> арапски
      хи.фмусер.орг -> Арменски
      аз.фмусер.орг -> азербејџански
      еу.фмусер.орг -> баскијски
      бе.фмусер.орг -> белоруски
      бг.фмусер.орг -> бугарски
      ца.фмусер.орг -> каталонски
      зх-ЦН.фмусер.орг -> кинески (поједностављени)
      зх-ТВ.фмусер.орг -> кинески (традиционални)
      хр.фмусер.орг -> хрватски
      цс.фмусер.орг -> чешки
      да.фмусер.орг -> дански
      нл.фмусер.орг -> холандски
      ет.фмусер.орг -> естонски
      тл.фмусер.орг -> филипински
      фи.фмусер.орг -> фински
      фр.фмусер.орг -> француски
      гл.фмусер.орг -> галицијски
      ка.фмусер.орг -> грузијски
      де.фмусер.орг -> немачки
      ел.фмусер.орг -> грчки
      хт.фмусер.орг -> хаићански креол
      ив.фмусер.орг -> хебрејски
      хи.фмусер.орг -> хинду
      ху.фмусер.орг -> мађарски
      ис.фмусер.орг -> исландски
      ид.фмусер.орг -> индонежански
      га.фмусер.орг -> ирски
      ит.фмусер.орг -> италијански
      ја.фмусер.орг -> јапански
      ко.фмусер.орг -> корејски
      лв.фмусер.орг -> летонски
      лт.фмусер.орг -> Литвански
      мк.фмусер.орг -> македонски
      мс.фмусер.орг -> малајски
      мт.фмусер.орг -> малтешки
      но.фмусер.орг -> норвешки
      фа.фмусер.орг -> перзијски
      пл.фмусер.орг -> пољски
      пт.фмусер.орг -> португалски
      ро.фмусер.орг -> румунски
      ру.фмусер.орг -> руски
      ср.фмусер.орг -> српски
      ск.фмусер.орг -> словачки
      сл.фмусер.орг -> Словеначки
      ес.фмусер.орг -> шпански
      св.фмусер.орг -> свахили
      св.фмусер.орг -> шведски
      тх.фмусер.орг -> Тајландски
      тр.фмусер.орг -> турски
      ук.фмусер.орг -> украјински
      ур.фмусер.орг -> урду
      ви.фмусер.орг -> Вијетнамски
      ци.фмусер.орг -> велшки
      ии.фмусер.орг -> јидиш

       
  •  

    ФМУСЕР бежични пренос видеа и звука лакше!

  • Контакт

    Адреса:
    Бр. 305 Соба ХуиЛан зграда бр. 273 Хуанпу Роад Гуангзхоу Кина 510620

    Е-маил:
    [емаил заштићен]

    Тел / ВхатАппс:
    +8618078869184

  • Категорије

  • Билтен.

    ПРВО ИЛИ ПУНО ИМЕ

    Е-пошта

  • ПаиПал решење  Вестерн УнионКинеска банка
    Е-маил:[емаил заштићен]   ВхатсАпп: +8618078869184 Скипе: ски198710021 Цхат витх ме
    Цопиригхт КСНУМКС-КСНУМКС Поверед би ввв.фмусер.орг

    Kontaktirajte nas