Ujian induk Penerima Siaran
Pengenalan kepada bahagian ini
Dalam bahagian ini kita akan mempelajari yang ketiga daripada empat komponen utama Android: BroadcastReceiver (penerima siaran), hehe, saya telah memikirkannya sebentar tadi Cara menulis ayat pembuka, jadi saya membelek dua buku asas Android yang saya miliki dan mendapati kedua-duanya tidak mempunyai pengenalan kepada BroadcastReceiver. Saya tidak tahu sama ada ia secara kebetulan atau penulis merasakan bahawa perkara ini tidak digunakan banyak dan tidak perlu dibincangkan! Walau bagaimanapun, mereka tidak bercakap mengenainya, tetapi Xiaozhu boleh bercakap mengenainya, dan dia perlu membincangkannya secara terperinci! Baiklah, mari mulakan bahagian ini~ PS: Dengan cara ini, di laman web rasmi Android, saya mengklik pada Panduan API -> Komponen Apl dan tidak menemui sebarang kesan Penerima Siaran. Nah, cari sahaja untuk Penerima Siaran Alamat dokumen yang sepadan ialah: Penerima Siaran
1.
Jawapan: Siaran ialah terjemahan literal bagi siaran Mari berikan contoh yang jelas untuk membantu saya memahami Penerima Siaran Pada masa itu, setiap kelas akan mempunyai pembesar suara besar yang tergantung di dinding untuk menyiarkan beberapa pengumuman, seperti apabila sekolah mula memindahkan buku, menyiarkan: "Dalam setiap kelas, cari beberapa rakan sekelas untuk mengambil buku dari Pejabat Hal Ehwal Akademik Selepas siaran ini dihantar, semua pelajar akan menerima pemberitahuan siaran ini pada masa yang sama. Diterima, tetapi tidak setiap pelajar akan memindahkan buku Secara umumnya, mereka yang memindahkan buku adalah "lelaki kuat" dalam kelas ini Selepas siaran, dia akan bergerak untuk memindahkan buku-buku itu kembali tetapi!
——Baiklah, di atas adalah contoh penyampaian siaran yang sangat jelas:
Pembesar suara besar--> Hantar siaran--> Semua pelajar boleh menerima siaran--> kepada konsep kami, sebenarnya, BroadcastReceiver ialah pembesar suara global antara aplikasi, iaitu, alat komunikasi. Sistem itu sendiri akan menghantar siaran pada banyak masa, seperti apabila bateri lemah atau mencukupi, selepas sahaja dimulakan, memasang fon kepala, menukar kaedah input, dsb. Apabila masa ini berlaku, sistem akan menghantar siaran Ini dipanggil siaran sistem Setiap APP akan menerimanya Lakukan beberapa operasi semasa siaran ini, seperti: selepas sistem dihidupkan, jalankan perkhidmatan secara rahsia di latar belakang ~ Haha, pada masa ini anda hanya perlu Daftarkan Penerima Siaran untuk memantau permulaan Apabila menerima siaran permulaan, lakukan beberapa perkara licik~ Sudah tentu, kami juga boleh menghantar siaran sendiri Sebagai contoh, selepas menerima maklumat push daripada pelayan, pengguna log masuk ke tempat lain, dan kemudian pengguna harus dipaksa untuk log keluar dan kembali ke. Antara muka log masuk, dan gesaan untuk log masuk di tempat lain ~ Sudah tentu, saya akan menulis contoh mudah kemudian untuk membantu semua orang memahami faedah yang dibawa oleh penyiaran kepada kita ~
2. Dua jenis siaran :
3. Terima siaran sistem
1) Dua cara untuk mendaftar siaran
Seperti yang dinyatakan sebelum ini, sistem akan menghantar siaran sistem yang sepadan pada masa-masa tertentu, mari mari APP kami menerima siaran sistem, Sebelum menerima, kami perlu mendaftarkan penerima siaran untuk APP kami! Kaedah pendaftaran dibahagikan kepada dua jenis berikut: dinamik dan statik!
Di bawah ini kami menunjukkan penggunaan dan perbezaan kedua-duanya melalui kod:
2 ) Pendaftaran dinamik contoh (memantau perubahan status rangkaian)
Contoh kod:
Rendering:
Baiklah, pada mulanya tiada sambungan Internet, iaitu wifi tidak dihidupkan Selepas beberapa ketika, gesaan Toast muncul Ia juga mudah untuk dilaksanakan!
Pelaksanaan kod:
Sesuaikan Penerima Siaran dan lengkapkan transaksi untuk disiarkan dalam kaedah onReceive(), seperti maklumat Toast di sini: MyBRReceiver.java
@Override
public void onReceive(Konteks Konteks, Niat niat) {
Toast.makeText(konteks,"Status rangkaian berlaku Tukar~",Toast.LENGTH_SHORT).show();
}
}
MainActivity.java Daftar siaran secara dinamik:
MyBRReceiver myReceiver;
> protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Kod teras:
myReceiver = MyBRReceiver() baharu ;
IntentFilter itFilter = new IntentFilter();
itFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(myReceiver, itFilter);
}
// Jangan lupa batalkan siaran~
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
}
3) Contoh pendaftaran statik (menerima siaran but)
Contoh kod:
Tiada gambar rajah di sini~, Mari lihat secara langsung pelaksanaan kod~
Pelaksanaan kod:
1 Sesuaikan Penerima Siaran dan tulis semula onReceive untuk menyelesaikan pemprosesan transaksi
@Override
public void onReceive(Context intent ) {
if (ACTION_BOOT.equals(intent.getAction()))
Toast.makeText(context, "Boot completed~", Toast.LENGTH_LONG).show();
}
}
2. Daftarkan Penerima Siaran dalam AndroidManifest.xml dan tambahkan penapis niat untuk siaran but
Sebenarnya, jangan lupa tambahkan android. kebenaran .RECEIVE_BOOT_COMPLETED kebenaran!
<intent-filter>
<action android:name = "android.intent.cation .BOOT_COMPLETED">
</intent-filter>
</receiver>
<!-- Kebenaran -->
<uses-permission android:name ="android.permission.RECEIVE_BOOT_COMPLETED"/>
Baiklah, kemudian apabila anda memulakan semula telefon anda, anda akan mendapati bahawa selepas beberapa ketika, roti bakar penyiapan permulaan akan muncul~ Selain itu, Android versi 4.3 dan ke atas membenarkan atur cara dipasang pada kad SD Jika program anda dipasang pada SD , anda tidak akan menerima siaran but Sebab dan penyelesaian khusus akan diterangkan secara terperinci dalam bahagian seterusnya!
4) Langkah berjaga-jaga untuk menggunakan siaran:
Hei, siaran mudah digunakan dan ringkas, tetapi anda harus memberi perhatian kepada penggunaan siaran:
Jangan Tambah terlalu banyak logik atau lakukan sebarang operasi yang memakan masa dalam penyiaran, kerana benang tidak dibenarkan dibuka dalam penyiaran. Apabila kaedah onReceiver() berjalan untuk masa yang lama (lebih daripada 10 saat) dan belum tamat, program akan melaporkan ralat (ANR). Penyiaran lebih kerap memainkan peranan untuk membuka komponen lain, seperti memulakan Perkhidmatan, gesaan Pemberitahuan, Aktiviti dan sebagainya!
4. Menghantar siaran
Nah, di atas kita semua menerima siaran daripada sistem. Kita tidak boleh begitu pasif sepanjang masa, kita kena proaktif Betul! Tambahan pula, esok adalah Hari Valentine Cina, programmer, ambil kesempatan dan cuba keluar dari single, haha! Okay, kembali kepada penyiaran, kami akan mengambil inisiatif untuk menyiarkannya sendiri! Mari kita lihat bagaimana untuk mencapainya!
Cara menghantar: Sebelum menghantar siaran, anda mesti terlebih dahulu menentukan penerima, tentukan sasaran dahulu, dan kemudian mengaku! ~(●'◡'●)~
Contoh Kod: (Siaran Standard)
MyBroadcastReceiver.java
Rentetan akhir peribadi ACTION_BOOT = "com.example.broadcasttest.MY_BROADCAST";
@Override
public void onReceive Niat niat) {
if(ACTION_BOOT.equals(intent.getAction()))
Toast.makeText(context, "I got the confession~",Toast.LENGTH_SHORT).show();
}
}
Kemudian daftarkannya dalam AndroidManifest.xml dan tulis Intent-filter:
<intent-filter>
<action android:name="com.example.broadcasttest.MY_BROADCAST"/>
</intent-filter&🎜; /penerima>
Baiklah, seterusnya kita jalankan projek program di atas, kemudian tutupnya, dan kemudian kita buat projek baharu, Lengkapkan penghantaran siaran dalam projek ini ~ Buat Demo2 baharu, reka letak adalah butang mudah, dan kemudian lengkapkan penghantaran siaran dalam MainActivity:
MainActivity.java:
@Override
void dilindungi onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout_);<.activity_ 🎜> Butang btn_send = (Button) findViewById(R.id.btn_send);
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick({> public void onClick() sendBroadcast(Niat baharu( "com.example.broadcasttest.MY_BROADCAST"));
🎜>
Baiklah, penggunaan mudah BroadcastReceiver adalah semudah itu, Walau bagaimanapun, apa yang kami gunakan di sini adalah siaran global, iaitu, lain-lain. Aplikasi ini juga boleh menerima siaran kami, yang mungkin menyebabkan beberapa isu keselamatan, tetapi tidak mengapa kami akan mengajar anda cara menggunakannya dalam bahagian seterusnya. Siaran tempatan, dan cara memasang aplikasi pada kad SD selepas Android 4.3, cara memantau permulaan~Baiklah, itu sahaja untuk bahagian ini, terima kasih~