BroadcastReceiver動(dòng)態(tài)注冊(cè)案例詳解
BroadcastReceiver動(dòng)態(tài)注冊(cè)案例演示,供大家參考,具體內(nèi)容如下
此案例共介紹2種動(dòng)態(tài)注冊(cè)廣播接收器,為自定義廣播接收器和系統(tǒng)廣播接收器。當(dāng)點(diǎn)擊發(fā)送按鈕后,將會(huì)彈出收到自定義廣播的提示;當(dāng)打開或關(guān)閉飛行模式時(shí),會(huì)出現(xiàn)飛行模式發(fā)生變化的提示。
效果圖:
代碼:
MainActivity.java
public class MainActivity extends AppCompatActivity { ? ? private MyBroadcastReceiver receiver1; ? ? private NetReceiver receiver2; ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? ? ? //1.動(dòng)態(tài)注冊(cè)自定義廣播接收器 ? ? ? ? receiver1 = new MyBroadcastReceiver(); ? ? ? ? IntentFilter filter1 = new IntentFilter(); ? ? ? ? //使用包名作為自定義廣播action ? ? ? ? filter1.addAction("com.example.a01dynamicregister"); ? ? ? ? registerReceiver(receiver1, filter1); ? ? ? ? //2.動(dòng)態(tài)注冊(cè)系統(tǒng)廣播接收器 ? ? ? ? receiver2 = new NetReceiver(); ? ? ? ? IntentFilter filter2 = new IntentFilter(); ? ? ? ? //添加切換飛行模式action ? ? ? ? filter2.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);//當(dāng)飛行模式打開或關(guān)閉時(shí),接收該廣播 ? ? ? ? registerReceiver(receiver2, filter2); ? ? ? ? //3.點(diǎn)擊按鈕發(fā)送自定義廣播 ? ? ? ? findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void onClick(View view) { ? ? ? ? ? ? ? ? Intent intent = new Intent("com.example.a01dynamicregister");//注意:自定義廣播的發(fā)送和接受內(nèi)容必須一直,否則接收不到 ? ? ? ? ? ? ? ? sendBroadcast(intent); ? ? ? ? ? ? } ? ? ? ? }); ? ? } ? ? @Override ? ? protected void onDestroy() { ? ? ? ? super.onDestroy(); ? ? ? ? //記得用完需要銷毀廣播接收器 ? ? ? ? if (receiver1 != null) { ? ? ? ? ? ? unregisterReceiver(receiver1); ? ? ? ? } ? ? ? ? if (receiver2 != null) { ? ? ? ? ? ? unregisterReceiver(receiver2); ? ? ? ? } ? ? } } //接收自定義廣播 class MyBroadcastReceiver extends BroadcastReceiver { ? ? @Override ? ? public void onReceive(Context context, Intent intent) { ? ? ? ? String action = intent.getAction(); ? ? ? ? Toast.makeText(context, "收到自定義廣播了~~action為:" + action, Toast.LENGTH_LONG).show(); ? ? } } //接收系統(tǒng)廣播 class NetReceiver extends BroadcastReceiver { ? ? @Override ? ? public void onReceive(Context context, Intent intent) { ? ? ? ? String action = intent.getAction(); ? ? ? ? if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) { ? ? ? ? ? ? Toast.makeText(context, "飛行模式發(fā)生變化~~", Toast.LENGTH_LONG).show(); ? ? ? ? } ? ? } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? xmlns:tools="http://schemas.android.com/tools" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? tools:context=".MainActivity"> ? ? <Button ? ? ? ? android:id="@+id/btn" ? ? ? ? android:layout_width="match_parent" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:text="發(fā)送自定義廣播"/> ? ?? </LinearLayout>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)View拖拽跟隨手指移動(dòng)效果
這篇文章主要介紹了Android實(shí)現(xiàn)View拖拽跟隨手指移動(dòng)效果,主要使用setTranslationX() 和setTranslationY() 屬性方法實(shí)現(xiàn)的,需要的朋友參考下吧2017-08-08解決Android Studio 3.0 butterknife:7.0.1配置的問題
下面小編就為大家分享一篇解決Android Studio 3.0 butterknife:7.0.1配置的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12Android getBackground().setAlpha遇到問題解決辦法
這篇文章主要介紹了Android getBackground().setAlpha遇到問題解決辦法的相關(guān)資料用,getBackground().setAlpha,導(dǎo)致其他布局背景透明度都改變的問題,需要的朋友可以參考下2017-03-03AlertDialog點(diǎn)擊按鈕不消失的實(shí)現(xiàn)方法
我有一個(gè)文本輸入對(duì)話框,當(dāng)我點(diǎn)擊對(duì)話框上的“是”按鈕,它會(huì)驗(yàn)證輸入,然后關(guān)閉對(duì)話框,但是,如果輸入錯(cuò)誤,我想停留在同一個(gè)對(duì)話框中。怎么實(shí)現(xiàn)此功能呢?下面通過本文給大家分享下2017-01-01Android編程實(shí)現(xiàn)popupwindow定時(shí)消失的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)popupwindow定時(shí)消失的方法,結(jié)合實(shí)例形式分析了Android使用定時(shí)器實(shí)現(xiàn)popupwindow定時(shí)消失的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Android代碼實(shí)現(xiàn)新年賀卡動(dòng)畫示例詳解
這篇文章主要為大家介紹了Android代碼實(shí)現(xiàn)新年賀卡動(dòng)畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android應(yīng)用程序的編譯流程及使用Ant編譯項(xiàng)目的攻略
這篇文章主要介紹了Android應(yīng)用程序的編譯流程及使用Ant編譯項(xiàng)目的攻略,Ant是集編譯測(cè)試部署于一體的Java自動(dòng)化工具,要的朋友可以參考下2016-04-04