FMUSER Transferoni pa video dhe audio video dhe audio më lehtë!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikanisht
sq.fmuser.org -> shqip
ar.fmuser.org -> arabisht
hy.fmuser.org -> Armenisht
az.fmuser.org -> Azerbajxhanisht
eu.fmuser.org -> Baskisht
be.fmuser.org -> Bjellorusisht
bg.fmuser.org -> Bullgarisht
ca.fmuser.org -> katalanisht
zh-CN.fmuser.org -> Kinezisht (e thjeshtuar)
zh-TW.fmuser.org -> Kinezisht (Tradicionale)
hr.fmuser.org -> Kroate
cs.fmuser.org -> Çekisht
da.fmuser.org -> daneze
nl.fmuser.org -> Hollandisht
et.fmuser.org -> Estonisht
tl.fmuser.org -> Filipinase
fi.fmuser.org -> finlandisht
fr.fmuser.org -> Frëngjisht
gl.fmuser.org -> Galike
ka.fmuser.org -> gjeorgjian
de.fmuser.org -> gjermanisht
el.fmuser.org -> Greqisht
ht.fmuser.org -> Kreolishtja Haitiane
iw.fmuser.org -> Hebraisht
hi.fmuser.org -> Hindisht
hu.fmuser.org -> Hungarisht
is.fmuser.org -> Islandez
id.fmuser.org -> indonezisht
ga.fmuser.org -> Irlandez
it.fmuser.org -> Italisht
ja.fmuser.org -> Japoneze
ko.fmuser.org -> Koreane
lv.fmuser.org -> Letonisht
lt.fmuser.org -> Lituanisht
mk.fmuser.org -> maqedonas
ms.fmuser.org -> Malajzisht
mt.fmuser.org -> Maltese
no.fmuser.org -> Norvegjisht
fa.fmuser.org -> persisht
pl.fmuser.org -> polake
pt.fmuser.org -> Portugeze
ro.fmuser.org -> Rumanisht
ru.fmuser.org -> Rusisht
sr.fmuser.org -> serbisht
sk.fmuser.org -> Sllovake
sl.fmuser.org -> Sllovenisht
es.fmuser.org -> Spanjisht
sw.fmuser.org -> Suahilisht
sv.fmuser.org -> suedisht
th.fmuser.org -> Thai
tr.fmuser.org -> turqisht
uk.fmuser.org -> ukrainas
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uellsit
yi.fmuser.org -> Yiddish
Transmetimet ndahen në dy lloje të ndryshme: "Transmetime normale" dhe "Transmetime të porositura". Transmetimi i zakonshëm është plotësisht asinkron dhe mund të merret nga të gjithë marrësit e transmetimit në të njëjtën kohë (logjikisht). Efikasiteti i dërgimit të mesazheve është relativisht i lartë, por disavantazhi është se marrësi nuk mund të kalojë rezultatin e përpunimit te marrësit tjetër dhe ai nuk mund të përfundojë. Transmetimi Përhapja e qëllimit; sidoqoftë, transmetimi i porositur bazohet në përparësinë e deklaruar nga marrësi (deklaruar në android: atributi i përparësisë së elementit filtër qëllimi, sa më i madh të jetë numri, aq më i lartë është përparësia, diapazoni i vlerës: -1000 deri në 1000. alsoshtë gjithashtu e mundur Thirrni setPriority () të objektit IntentFilter për të vendosur), dhe marrësi merr transmetimin me radhë. Për shembull, nëse niveli i A është më i lartë se ai i B, dhe niveli i B është më i lartë se C, atëherë transmetimi transmetohet fillimisht në A, pastaj në B, dhe në fund në C. Pasi A merr transmetimin, ai mund të ruajë të dhëna në transmetim. Kur transmetimi dërgohet në B, B mund të marrë të dhënat e ruajtura nga A nga transmetimi.
Context.sendBroadcast ()
Ajo që dërgohet është një transmetim i zakonshëm, dhe të gjithë pajtimtarët kanë mundësinë ta marrin dhe përpunojnë atë.
Context.sendOrowedBroadcast ()
Dërgimi është një transmetim i rregullt. Sistemi do të ekzekutojë marrësit një nga një në përputhje me përparësinë e deklaruar nga marrësi. Marrësi i mëparshëm ka të drejtë të ndërpresë transmetimin (BroadcastReceiver.abortBroadcast ()). Nëse transmetimi ndërpritet nga marrësi i mëparshëm, ky i fundit Marrësi nuk mund të marrë më transmetimin. Për transmetimin e porositur, marrësi i mëparshëm mund të ruajë rezultatin e përpunimit në qëllimin e transmetimit, dhe pastaj t'ia kalojë marrësit tjetër.
Marrësi i transmetimit (BroadcastReceiver) përdoret për të marrë Intentin e transmetimit, dhe dërgimi i transmetimit Intent realizohet duke thirrur Context.sendBroadcast () dhe Context.sendOruledBroadcast (). Zakonisht një Synim i transmetimit mund të merret nga marrës të shumtë të transmetimit të pajtuar në këtë Synim. Kjo karakteristikë është e ngjashme me marrësit e mesazheve Tema në JMS. Për të zbatuar një metodë të marrësit të transmetimit është si më poshtë:
Hapi i parë: përcaktoni marrësin e transmetimit, trashëgoni BroadcastReceiver dhe rishkruani metodën onReceive ().
Marrësi i ardhshëmSMSS i klasës publike shtrihetTransmetuesi Marrësi {
@ Mbikëqyr boshllëkun publik nëReceive (Contextcontext, Qëllimi) {
}
}
Hapi 2: Abonohuni në transmetim Qëllimi i interesit, ekzistojnë dy metoda të pajtimit:
Lloji i parë: përdorni kodin për t'u pajtuar (pajtim dinamik)
Filtri IntentFilter = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
Marrësi IncomingSMSReceiver = newInomingSMSReceiver ();
regjistri Marrësi (marrësi, filtri);
Lloji i dytë: Regjistrohuni në nyja në skedarin AndroidManifest.xml (pajtim statik)
Le të hedhim një vështrim në ndryshimin midis abonimit të transmetimit dinamik dhe abonimit të transmetimit statik:
Transmetimi statik i pajtimit quhet ndryshe: transmetim rezident. Kur aplikacioni juaj është i mbyllur, nëse ka një mesazh transmetimi, marrësi i transmetimit që keni shkruar gjithashtu mund ta marrë atë. Metoda e tij e regjistrimit është AndroidManifast në aplikacionin tuaj. .xml për pajtim.
Transmetimi dinamik i pajtimit quhet ndryshe: transmetim jorezident. Kur të përfundojë aplikimi, transmetimi natyrshëm do të zhduket. Për shembull, ju regjistroheni në transmetim në Krijoni ose Rifilloni në aktivitet dhe duhet të anuloni pajtimin në transmetim nëDestory ose nëPause. Përndryshe, një përjashtim do të raportohet, kështu që marrësi juaj i transmetimit do të jetë një jorezident.
Këtu ka edhe një detaj që është dy metodat e pajtimit. Kur dërgoni transmetime, duhet t'i kushtoni vëmendje: Metoda e nënkuptuar e nënkuptuar përdoret për regjistrim dinamik, kështu që duhet të përdorni qëllim të nënkuptuar për të dërguar kur dërgoni transmetime. Përndryshe marrësi i transmetimit nuk do të jetë në gjendje të marrë transmetimin. Kushtojini vëmendje kësaj pike. Por kur regjistrohesh në mënyrë statike, sepse është i pajtuar në AndroidMainfest.xml, është e mundur të përdorësh Intentin e ekranit dhe Synimin e nënkuptuar gjatë dërgimit të transmetimeve (natyrisht kjo është vetëm për marrësit e transmetimit të përcaktuar nga vetë ne), kështu që për çdo rast, Ne zakonisht përdorim Qëllimi për të dërguar transmetim.
Le të shohim një shembull:
Shikoni strukturën e projektit:
Shikoni transmetimin statik të pajtimit:
paketa com.broadcast.demo;
import android.app.Aktiviteti;
import android.përmbajtja. Intent;
importoni android.os.Bundle;
importoni android.view.View;
importoni android.view.View.OnClickListener;
importoni android.widget.Button;
importoni com.example.androidbroadcastdemo.R;
/ **
* Transmetim statik i pajtimit
* @autor autori weijiang204321
*
*/
klasa publike StaticRegisterBroadcastActivity shtrihet Aktiviteti {
@ Mbikëqyrja
boshllëk i mbrojtur onCreate (Paketa e ruajturInstanceState) {
super.onCreate (i ruajturInstanceState);
setContentView (R.layout.activity_main);
Butoni btn = (Butoni) findViewById (R.id.btn);
në
btn.setOnClickListener (OnClickListener i ri () {
@ Mbikëqyrja
boshllëk publik në Kliko (Shiko v) {
// Përdorni një mënyrë statike për të regjistruar transmetimin, ju mund të përdorni qëllimin e shfaqjes për të dërguar transmetimin
Transmetimi i synimit = Qëllimi i ri ("com.broadcast.set.broadcast");
sendBroadcast (transmetim, null);
}
në
});
}
në
}
Abonohuni në AndroidMainfest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
paketa = "com.example.androidbroadcastdemo"
android: versionCode = "1"
android: versionName = "1.0">
<përdor-sdk
android: minSdkVersion = "8"
android: targetSdkVersion = "18" />
<aplikacion
android: allowBackup = "e vërtetë"
android: icon = "@ drawable / ic_launcher"
android: label = "@ string / app_name"
android: theme = "@ style / AppTheme">
<aktivitet
android: name = "com.broadcast.demo.StaticRegisterBroadcastActivity"
android: label = "@ string / app_name">
Mos u shqetësoni për përmbajtjen tjetër tani për tani, pasi do të flasim më vonë, këtu ne përqendrohemi vetëm në regjistrimin e transmetimeve statike
Le të hedhim një vështrim në marrësin e transmetimit:
paketa com.broadcast.receiver;
import android.content.BreadcastReceiver;
importoni android.content.Context;
import android.përmbajtja. Intent;
importoni android.util.Log;
/ **
* Marrësi i transmetimit
* @autor autori weijiang204321
*
*/
Klasa publike UnSortBroadcastReceiver shtrihet BroadcastReceiver {
@ Mbikëqyrja
boshllëk publik mbi Marrja (Konteksti i kontekstit, Qëllimi i synimit) {
Log.e ("Veprimi_ Qëllimi:", intent.getAction () + "");
}
}
Logjika në metodën onReceive në marrësin e transmetimit është shumë e thjeshtë, e cila është shtypja e përmbajtjes së veprimit.
Ekzekutoni programin, rezultati është shumë i thjeshtë, këtu nuk është fotografia.
Le të hedhim një vështrim në pajtimet dinamike:
paketa com.broadcast.demo;
import android.app.Aktiviteti;
import android.përmbajtja. Intent;
importoni android.content.IntentFilter;
importoni android.os.Bundle;
importoni android.view.View;
importoni android.view.View.OnClickListener;
importoni android.widget.Button;
importoni com.broadcast.receiver.UnSortBroadcastReceiver;
importoni com.example.androidbroadcastdemo.R;
/ **
* Përdorni mënyrë dinamike për të regjistruar transmetimin
* @autor autori weijiang204321
*
*/
klasa publike DynamicRegisterBroadcastActivity shtrihet Aktiviteti {
në
Vargu përfundimtar statik publik NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
Marrësi i mbrojtur UnSortBroadcastReceiver;
në
@ Mbikëqyrja
boshllëk i mbrojtur onCreate (Paketa e ruajturInstanceState) {
super.onCreate (i ruajturInstanceState);
setContentView (R.layout.activity_main);
Butoni btn0 = (Butoni) findViewById (R.id.btn);
btn0.setOnClickListener (OnClickListener i ri () {
boshllëk publik në Kliko (Shiko v) {
// Dërgoni transmetimin
Qëllimi it = Qëllimi i ri (NEW_LIFEFORM_DETECTED);
sendBroadcast (it);
}
});
}
@ Mbikëqyrja
boshllëk i mbrojtur nëResume () {
super.onResume ();
// Regjistrohuni për transmetim
IntentFilter counterActionFilter = ri IntentFilter (NEW_LIFEFORM_DETECTED);
marrësi = marrësi i ri i UnSortBroadcast ();
regjistri Marrësi (marrësi, counterActionFilter);
}
@ Mbikëqyrja
boshllëk i mbrojtur nëPause () {
super.nëPauzë ();
// Anuloni transmetimin
çregjistrohu Marrësi (marrësi);
}
}
Këtu ne po pajtohemi për transmetim nëResume, dhe çabonim për transmetim nëPause.
Ndryshoni Aktivitetin e nisur në DynamicRegisterBroadcastActivity në AndroidMainfest.xml. Përmbajtja tjetër nuk ka nevojë të modifikohet. Drejtoni programin dhe printoni rezultati është shumë i thjeshtë, kështu që unë nuk do ta shoh foton këtu.
Le të hedhim një vështrim në transmetimet e porositura dhe transmetimet e parenditura
Ne tashmë e kemi përmendur këtë në fillim, le të hedhim një vështrim në transmetimet e çrregullta:
Së pari ne përcaktojmë dy marrës transmetues:
Marrësi i parë i transmetimit:
paketa com.broadcast.receiver;
import android.content.BreadcastReceiver;
importoni android.content.Context;
import android.përmbajtja. Intent;
importoni android.util.Log;
/ **
* Marrësi i transmetimit A
* @autor autori weijiang204321
*
*/
Klasa publike SortBroadcastReceiverA zgjat BroadcastReceiver {
@ Mbikëqyrja
boshllëk publik mbi Marrja (Konteksti i kontekstit, Qëllimi i synimit) {
Log.e ("Demo:", "marrësi i transmetimit A");
}
}
Marrësi i dytë i transmetimit:
paketa com.broadcast.receiver;
import android.content.BreadcastReceiver;
importoni android.content.Context;
import android.përmbajtja. Intent;
importoni android.util.Log;
/ **
* Marrësi i transmetimit B
* @autor autori weijiang204321
*
*/
Klasa publike SortBroadcastReceiverB shtrihet BroadcastReceiver {
@ Mbikëqyrja
boshllëk publik mbi Marrja (Konteksti i kontekstit, Qëllimi i synimit) {
Log.e ("Demo:", "Transmetimi B");
}
në
në
}
Abonohuni për të transmetuar në AndroidMainfest.xml
rezultati i operimit:
Rezultati i vrapimit është pak i çuditshëm. Pse është marrësi B në pjesën e përparme dhe marrësi A në pjesën e pasme? Arsyeja është se kur regjistrohemi në transmetim në AndroidMainfest.xml, ne vendosim vlerën e atributit android: prioritet në filtrin e synimit. Sa më e madhe të jetë vlera, aq më i lartë është përparësia. , Prioriteti i marrësit B është 1000, përparësia e marrësit A është 999, kështu që B merr fillimisht transmetimin, dhe pastaj A e merr atë, por nuk ka asnjë lidhje midis marrësit B dhe marrësit A, dhe nuk mund të ketë ndërveprim Po, për shkak se ky është një transmetim jashtë rendit dhe asinkron, ne mund të bëjmë një eksperiment duke shtuar kod në metodën onReceiver në B:
abortBroadcast (); // Përfundoni transmetimin e këtij transmetimi
rezultati i operimit:
Ne mund të shohim gabimin e shpejtë, domethënë transmetimi i pa porositur nuk lejohet të ndërpresë transmetimin. Në fakt, përfundimi është i padobishëm, sepse marrësi A ende merr transmetimin.
Le të hedhim një vështrim në transmetimin e rregullt, kodi duhet të modifikohet:
E para është kur dërgoni një transmetim:
Transmetimi i synimit = Qëllimi i ri ("com.broadcast.set.broadcast");
transmetoniOrdruarBroadcast (transmetuar, null);
Pastaj shtoni një metodë për të përfunduar transmetimin në marrësin B:
abortBroadcast ();
Kodi tjetër nuk ka nevojë të modifikohet, rezultati i operacionit:
Ekziston vetëm marrësi B, marrësi A nuk e merr transmetimin, sepse transmetimi përfundon në marrësin B, dhe marrësit pasues nuk mund ta pranojnë atë.
Modifikoni kodin më poshtë:
Përfituesi B:
paketa com.broadcast.receiver;
import android.content.BreadcastReceiver;
importoni android.content.Context;
import android.përmbajtja. Intent;
importoni android.os.Bundle;
importoni android.util.Log;
/ **
* Marrësi i transmetimit B
* @autor autori weijiang204321
*
*/
Klasa publike SortBroadcastReceiverB shtrihet BroadcastReceiver {
@ Mbikëqyrja
boshllëk publik mbi Marrja (Konteksti i kontekstit, Qëllimi i synimit) {
Log.e ("Demo:", "marrësi i transmetimit B");
Pako e Paketës = Pako e re ();
bundle.putString ("marrësi tjetër_pranues", "marrësi tjetër i transmetimit");
setResultExtras (pako);
}
në
}
Pasi B merr transmetimin, ai ruan disa vlera dhe ia kalon marrësit tjetër.
Kodi i marrësit A:
paketa com.broadcast.receive
Produkti ynë të tjera:
Paketa e pajisjeve profesionale të stacionit të radios FM
|
||
|
Fut email për të marrë një surprizë
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikanisht
sq.fmuser.org -> shqip
ar.fmuser.org -> arabisht
hy.fmuser.org -> Armenisht
az.fmuser.org -> Azerbajxhanisht
eu.fmuser.org -> Baskisht
be.fmuser.org -> Bjellorusisht
bg.fmuser.org -> Bullgarisht
ca.fmuser.org -> katalanisht
zh-CN.fmuser.org -> Kinezisht (e thjeshtuar)
zh-TW.fmuser.org -> Kinezisht (Tradicionale)
hr.fmuser.org -> Kroate
cs.fmuser.org -> Çekisht
da.fmuser.org -> daneze
nl.fmuser.org -> Hollandisht
et.fmuser.org -> Estonisht
tl.fmuser.org -> Filipinase
fi.fmuser.org -> finlandisht
fr.fmuser.org -> Frëngjisht
gl.fmuser.org -> Galike
ka.fmuser.org -> gjeorgjian
de.fmuser.org -> gjermanisht
el.fmuser.org -> Greqisht
ht.fmuser.org -> Kreolishtja Haitiane
iw.fmuser.org -> Hebraisht
hi.fmuser.org -> Hindisht
hu.fmuser.org -> Hungarisht
is.fmuser.org -> Islandez
id.fmuser.org -> indonezisht
ga.fmuser.org -> Irlandez
it.fmuser.org -> Italisht
ja.fmuser.org -> Japoneze
ko.fmuser.org -> Koreane
lv.fmuser.org -> Letonisht
lt.fmuser.org -> Lituanisht
mk.fmuser.org -> maqedonas
ms.fmuser.org -> Malajzisht
mt.fmuser.org -> Maltese
no.fmuser.org -> Norvegjisht
fa.fmuser.org -> persisht
pl.fmuser.org -> polake
pt.fmuser.org -> Portugeze
ro.fmuser.org -> Rumanisht
ru.fmuser.org -> Rusisht
sr.fmuser.org -> serbisht
sk.fmuser.org -> Sllovake
sl.fmuser.org -> Sllovenisht
es.fmuser.org -> Spanjisht
sw.fmuser.org -> Suahilisht
sv.fmuser.org -> suedisht
th.fmuser.org -> Thai
tr.fmuser.org -> turqisht
uk.fmuser.org -> ukrainas
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uellsit
yi.fmuser.org -> Yiddish
FMUSER Transferoni pa video dhe audio video dhe audio më lehtë!
Kontakt
Adresa:
Nr.305 Dhoma Ndërtesa HuiLan Nr.273 Huanpu Road Guangzhou Kinë 510620
Kategoritë
Gazete