FMUSER Wirless Transmit Video and Audio Errazago!
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
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
Gure beste produktu:
FM Irrati Estazio Profesionaleko Ekipamendu Paketea
|
||
|
Sartu posta elektronikoa sorpresa bat izateko
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
Kategoriak
Buletina