最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

BroadcastReceiver動(dòng)態(tài)注冊(cè)案例詳解

 更新時(shí)間:2022年08月26日 09:07:03   作者:磚廠打工仔  
這篇文章主要為大家詳細(xì)介紹了BroadcastReceiver動(dòng)態(tài)注冊(cè)案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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)文章

最新評(píng)論

象州县| 通化县| 黄骅市| 新化县| 兰州市| 三都| 辰溪县| 凤翔县| 丽江市| 平罗县| 大名县| 宣汉县| 全椒县| 宣恩县| 汕尾市| 湄潭县| 师宗县| 彩票| 连州市| 海口市| 白山市| 太白县| 临沂市| 福鼎市| 依安县| 黄平县| 青浦区| 泸溪县| 屏东县| 横峰县| 腾冲县| 应用必备| 潼关县| 丰都县| 兴安县| 五家渠市| 炉霍县| 都兰县| 梁山县| 惠来县| 肃南|