FMUSER Wirless pārraida video un audio vieglāk!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
Apraide ir sadalīta divos dažādos veidos: "Parastas apraides" un "Pasūtītas apraides". Parastā apraide ir pilnīgi asinhrona, un to var uztvert visi apraides uztvērēji vienlaikus (loģiski). Ziņu piegādes efektivitāte ir salīdzinoši augsta, taču trūkums ir tāds, ka uztvērējs nevar nodot apstrādes rezultātu nākamajam uztvērējam un to nevar pārtraukt. Broadcast Intent izplatīšana; tomēr pasūtīta apraide tiek balstīta uz uztvērēja deklarēto prioritāti (deklarēta nolūka-filter elementa android: prioritātes atribūtā, jo lielāks skaitlis, jo augstāka prioritāte, vērtību diapazons: -1000 līdz 1000. Tas ir arī iespējams, izsauciet iestatāmā objekta IntentFilter setPriority (), un saņēmējs saņem apraidi pēc kārtas. Piemēram, ja A līmenis ir augstāks nekā B līmenis un B līmenis ir augstāks par C, tad apraide vispirms tiek pārsūtīta uz A, tad uz B un visbeidzot uz C. Pēc tam, kad A saņem apraidi, tā var saglabāt datus apraidē. Kad apraide tiek nosūtīta B, B no apraides var iegūt A saglabātos datus.
Context.sendBroadcast ()
Tiek sūtīts parasts raidījums, un visiem abonentiem ir iespēja to iegūt un apstrādāt.
Context.sendOrderedBroadcast ()
Sūtīšana ir kārtīga apraide. Sistēma izpildīs uztvērējus pa vienam atbilstoši uztvērēja deklarētajai prioritātei. Iepriekšējam uztvērējam ir tiesības pārtraukt apraidi (BroadcastReceiver.abortBroadcast ()). Ja apraidi pārtrauc iepriekšējais uztvērējs, pēdējais uztvērējs vairs nevar saņemt apraidi. Lai pasūtītu apraidi, iepriekšējais uztvērējs var saglabāt apstrādes rezultātu apraides nodomā un pēc tam nodot to nākamajam uztvērējam.
Apraides uztvērējs (BroadcastReceiver) tiek izmantots apraides nodoma saņemšanai, un apraides nodoma nosūtīšana tiek veikta, izsaucot Context.sendBroadcast () un Context.sendOrderedBroadcast (). Parasti apraides nodomu var saņemt vairāki apraides uztvērēji, kas abonējuši šo nodomu. Šī funkcija ir līdzīga tēmu ziņojumu uztvērējiem JMS. Apraides uztvērēja metodes ieviešana ir šāda:
Pirmais solis: definējiet apraides uztvērēju, pārmantojiet BroadcastReceiver un pārrakstiet metodi onReceive ().
publiskā klase IncomingSMSReceiver paplašinaBroadcastReceiver {
@Orride public void onReceive (Contextcontext, Intentintent) {
}
}
2. darbība. Abonējiet apraides interesējošo nodomu. Ir divas abonēšanas metodes:
Pirmais veids: abonēšanai izmantojiet kodu (dinamisks abonements)
IntentFilter filtrs = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver uztvērējs = newIncomingSMSReceiver ();
registerReceiver (uztvērējs, filtrs);
Otrais veids: Abonējiet mezgls failā AndroidManifest.xml (statisks abonements)
Apskatīsim dinamiskās apraides un statiskās apraides abonēšanas atšķirību:
Statisko abonēšanas apraidi sauc arī par rezidentu apraidi. Ja jūsu programma ir aizvērta, ja ir apraides ziņojums, to var saņemt arī jūsu rakstītais apraides uztvērējs. Tās reģistrācijas metode ir AndroidManifast jūsu lietojumprogrammā. .xml abonēšanai.
Dinamisko abonēšanas apraidi sauc arī: nerezidentu apraide. Kad lietojumprogramma beigsies, apraide dabiski izzudīs. Piemēram, jūs abonējat apraidi aktivitātē onCreate vai onResume, un jums ir jāatceļ apraides abonēšana vietnē OnDestory vai onPause. Pretējā gadījumā tiks ziņots par izņēmumu, tāpēc jūsu apraides uztvērējs būs nerezidents.
Šeit ir vēl viena detaļa, kas ir divas abonēšanas metodes. Sūtot apraides, jums jāpievērš uzmanība: Dinamiskai reģistrācijai tiek izmantota netiešā nodoma metode, tāpēc sūtot apraides, jums jāizmanto netiešais nodoms sūtīt. , Pretējā gadījumā apraides uztvērējs nevarēs saņemt apraidi. Pievērsiet uzmanību šim punktam. Bet, abonējot statiski, jo tas ir abonēts vietnē AndroidMainfest.xml, sūtot apraides, ir iespējams izmantot displeja Intent un implicit Intent (protams, tas attiecas tikai uz mūsu pašu definētiem apraides uztvērējiem), tāpēc katram gadījumam mēs parasti izmantojam implicit Nodoms nosūtīt apraidi.
Apskatīsim piemēru:
Apskatiet projekta struktūru:
Apskatiet statisko abonēšanas apraidi:
pakete com.broadcast.demo;
importēt android.app.Activity;
importēt android.content.Intent;
importēt android.os.Bundle;
importēt android.view.View;
importēt android.view.View.OnClickListener;
importēt android.widget.Button;
importēt com.example.androidbroadcastdemo.R;
/ **
* Statiska abonēšanas apraide
* @autors weijiang204321
*
*/
public class StaticRegisterBroadcastActivity paplašina darbību {
@ Pārvarēt
aizsargāts void onCreate (pakete savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
Poga btn = (Poga) findViewById (R.id.btn);
Uz
btn.setOnClickListener (jauns OnClickListener () {
@ Pārvarēt
public void onClick (skats v) {
// Izmantojiet statisku veidu, kā reģistrēt apraidi, varat izmantot displeja nolūku raidījuma nosūtīšanai
Nodomu pārraide = new Intent ("com.broadcast.set.broadcast");
sendBroadcast (apraide, nulle);
}
Uz
});
}
Uz
}
Abonējiet vietni AndroidMainfest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package = "com.example.androidbroadcastdemo"
android: versionCode = "1"
android: versionName = "1.0">
<uses-sdk
android: minSdkVersion = "8"
android: targetSdkVersion = "18" />
<pieteikums
android: allowBackup = "true"
android: icon = "@ drawable / ic_launcher"
android: label = "@ string / app_name"
android: theme = "@ style / AppTheme">
<aktivitāte
android: name = "com.broadcast.demo.StaticRegisterBroadcastActivity"
android: label = "@ string / app_name">
Pašlaik neuztraucieties par citu saturu, par ko mēs runāsim vēlāk, šeit mēs koncentrējamies tikai uz statisko raidījumu reģistrēšanu
Apskatīsim apraides uztvērēju:
pakete com.broadcast.receiver;
importēt android.content.BroadcastReceiver;
importēt android.content.Context;
importēt android.content.Intent;
importēt android.util.Log;
/ **
* Apraides uztvērējs
* @autors weijiang204321
*
*/
publiskā klase UnSortBroadcastReceiver paplašina BroadcastReceiver {
@ Pārvarēt
public void onReceive (konteksta konteksts, nodoma nolūks) {
Log.e ("Intent_Action:", intent.getAction () + "");
}
}
Apraides uztvērēja metodes onReceive loģika ir ļoti vienkārša, proti, izdrukāt darbības saturu.
Palaidiet programmu, rezultāts ir ļoti vienkāršs, šeit nav attēla.
Apskatīsim dinamiskos abonementus:
pakete com.broadcast.demo;
importēt android.app.Activity;
importēt android.content.Intent;
importēt android.content.IntentFilter;
importēt android.os.Bundle;
importēt android.view.View;
importēt android.view.View.OnClickListener;
importēt android.widget.Button;
importēt com.broadcast.receiver.UnSortBroadcastReceiver;
importēt com.example.androidbroadcastdemo.R;
/ **
* Izmantojiet dinamisku veidu, kā reģistrēt apraidi
* @autors weijiang204321
*
*/
publiskā klase DynamicRegisterBroadcastActivity paplašina darbību {
Uz
publiskā statiskā galīgā virkne NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
aizsargāts uztvērējs UnSortBroadcastReceiver;
Uz
@ Pārvarēt
aizsargāts void onCreate (pakete savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
Poga btn0 = (Poga) findViewById (R.id.btn);
btn0.setOnClickListener (jauns OnClickListener () {
public void onClick (skats v) {
// Sūtīt apraidi
Intent it = jauns nodoms (NEW_LIFEFORM_DETECTED);
sendBroadcast (it);
}
});
}
@ Pārvarēt
aizsargāts spēkā neesošs onResume () {
super.onResume ();
// Reģistrējieties apraidei
IntentFilter counterActionFilter = jauns IntentFilter (NEW_LIFEFORM_DETECTED);
uztvērējs = jauns UnSortBroadcastReceiver ();
registerReceiver (uztvērējs, counterActionFilter);
}
@ Pārvarēt
aizsargāts void onPause () {
super.onPause ();
// Atcelt apraidi
unregisterReceiver (uztvērējs);
}
}
Šeit mēs abonējam apraidi vietnē onResume un pārtraucam abonēšanu apraidei vietnē onPause.
Mainiet uzsākto darbību uz DynamicRegisterBroadcastActivity vietnē AndroidMainfest.xml. Pārējais saturs nav jāmaina. Palaidiet programmu un izdrukājiet rezultātu ļoti vienkārši, tāpēc es šeit neredzēšu attēlu.
Apskatīsim pasūtīto apraidi un nepārkārtoto apraidi
Mēs to jau minējām sākumā, apskatīsim nesakārtoto apraidi:
Vispirms mēs definējam divus apraides uztvērējus:
Pirmais apraides uztvērējs:
pakete com.broadcast.receiver;
importēt android.content.BroadcastReceiver;
importēt android.content.Context;
importēt android.content.Intent;
importēt android.util.Log;
/ **
* Apraides uztvērējs A
* @autors weijiang204321
*
*/
public class SortBroadcastReceiverA paplašina BroadcastReceiver {
@ Pārvarēt
public void onReceive (konteksta konteksts, nodoma nolūks) {
Log.e ("Demo:", "apraides uztvērējs A");
}
}
Otrais apraides uztvērējs:
pakete com.broadcast.receiver;
importēt android.content.BroadcastReceiver;
importēt android.content.Context;
importēt android.content.Intent;
importēt android.util.Log;
/ **
* Apraides uztvērējs B
* @autors weijiang204321
*
*/
publiskā klase SortBroadcastReceiverB paplašina BroadcastReceiver {
@ Pārvarēt
public void onReceive (konteksta konteksts, nodoma nolūks) {
Log.e ("Demo:", "Broadcast B");
}
Uz
Uz
}
Abonējiet apraidi vietnē AndroidMainfest.xml
darbības rezultāts:
Skriešanas rezultāts ir mazliet dīvains. Kāpēc uztvērējs B atrodas priekšā un uztvērējs A aizmugurē? Iemesls ir tāds, ka, abonējot apraidi vietnē AndroidMainfest.xml, nodoma filtrā iestatām atribūta android: prioritāti. Jo lielāka vērtība, jo augstāka prioritāte. , Uztvērēja B prioritāte ir 1000, uztvērēja A prioritāte ir 999, tāpēc B vispirms uztver apraidi un pēc tam A to saņem, bet starp uztvērēju B un uztvērēju A nav savienojuma, un nevar būt mijiedarbība Jā, Tā kā šī ir ārpus kārtas pārraide un asinhrona, mēs varam veikt eksperimentu, pievienojot kodu onReceiver metodei B:
abortBroadcast (); // Pārtrauciet šīs apraides pārraidi
darbības rezultāts:
Mēs varam redzēt ātru kļūdu, tas ir, nav pasūtīta apraide, lai pārtrauktu apraidi. Faktiski izbeigšana ir bezjēdzīga, jo uztvērējs A joprojām saņem apraidi.
Apskatīsim kārtīgu apraidi, kods ir jāmaina:
Pirmais ir sūtot apraidi:
Nodomu pārraide = new Intent ("com.broadcast.set.broadcast");
sendOrderedBroadcast (apraide, nulle);
Pēc tam pievienojiet metodi, kā pārtraukt apraidi uztvērējā B:
abortBroadcast ();
Pārējais kods nav jāmaina, darbības rezultāts:
Ir tikai uztvērējs B, uztvērējs A nesaņem apraidi, jo apraide tiek pārtraukta uztvērējā B, un nākamie uztvērēji to nevar pieņemt.
Mainiet zemāk esošo kodu:
B saņēmējs:
pakete com.broadcast.receiver;
importēt android.content.BroadcastReceiver;
importēt android.content.Context;
importēt android.content.Intent;
importēt android.os.Bundle;
importēt android.util.Log;
/ **
* Apraides uztvērējs B
* @autors weijiang204321
*
*/
publiskā klase SortBroadcastReceiverB paplašina BroadcastReceiver {
@ Pārvarēt
public void onReceive (konteksta konteksts, nodoma nolūks) {
Log.e ("Demo:", "apraides uztvērējs B");
Komplekta pakete = new Bundle ();
bundle.putString ("next_receiver", "nākamais apraides uztvērējs");
setResultExtras (saišķis);
}
Uz
}
Pēc tam, kad B saņem apraidi, tā saglabā kādu vērtību un nodod to nākamajam uztvērējam.
Uztvērēja A kods:
pakete com.broadcast.receive
citu mūsu produktu:
Profesionālu FM radiostaciju aprīkojuma komplekts
|
||
|
Ievadiet e-pastu, lai saņemtu pārsteigumu
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
FMUSER Wirless pārraida video un audio vieglāk!
Kontakti
Adrese:
Nr. 305 istaba HuiLan ēka Nr.273 Huanpu Road Guangzhou, Ķīna 510620
Kategorijas
Saņemt jaunumus