第一行代碼--筆記02

chapter4

動態(tài)添加碎片主要分為 5 步。

  1. 創(chuàng)建待添加的碎片實例。
  2. 獲取到 FragmentManager,在活動中可以直接調(diào)用 getFragmentManager()方法得到。
  3. 開啟一個事務(wù),通過調(diào)用 beginTransaction()方法開啟。
  4. 向容器內(nèi)加入碎片,一般使用 replace()方法實現(xiàn),需要傳入容器的 id 和待添加的碎片實例。
  5. 提交事務(wù),調(diào)用 commit()方法來完成

chapter5

1.創(chuàng)建廣播接收器;新建一個類,繼承自BroadcastReceiver();重寫OnReceive()方法;(下面是動態(tài)注冊廣播接收器關(guān)鍵代碼)

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVIVY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver,intentFilter);

2.靜態(tài)廣播接收器;
重新新建一個類BootCompleteReveicer繼承BroadcastReciver(),重寫方法OnReveice();然后在manifest.xml中進行注冊;

<receiver android:name = ".BootCompleteReceiver">
z在<intentFilter>標(biāo)簽中加入想要接收的廣播;
<intent-filter>
    <action android:name  = "android:intent.action.BOOT_COMPLETED"/>
</intent-filter>
最后記得聲明權(quán)限;<uses-permission>

3.創(chuàng)建發(fā)送廣播(以下是發(fā)送標(biāo)準(zhǔn)廣播關(guān)鍵代碼)
Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
sendBroadcast(intent);
凡是監(jiān)聽com.example.broadcasttest.MY_BROADCAST廣播的接收器全部會接收到消息。
4.發(fā)送有序廣播

Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
sendOrderedBroadcast(intent,null);
然后在manifest設(shè)定接收的優(yōu)先級;<intent-filter android:priority = "100">
如果要截斷廣播,可在onReceive()中加入abortBroadcast();

5.使用本地廣播;解決安全性問題;使用了一個 LocalBroadcastManager 來對廣播進行管理,并提供了發(fā)送廣播和注冊廣播接收器的方法

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);//獲取實例;
Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
localBroadcastManager.sendBroadcast(intent);//發(fā)送本地廣播

注冊本地廣播監(jiān)聽器:
localBroadcastManager.registerReceiver(localReceiver,intentFilter);

優(yōu)勢:1,防止機密數(shù)據(jù)泄露;2.沒有安全漏洞隱患;3.更高效;

6.總結(jié):廣播的使用分收發(fā)方;簡單講;

發(fā)方的思路是新建一個intent,包含要發(fā)出的"廣播特征";然后sendBroadcast(intent)即可。
收方的思路:新建一個Receiver implement BroadcastReceiver()繼承自BroadcastReceiver,在onReceiver()中實現(xiàn)廣播的

功能,比如強制下線功能。然后在manifest.XML中注冊該廣播
<Receiver android.name = "Receiver"/>,
<intent-filter>
< action name = "廣播特征" />
</intent-filter>

一收一發(fā),實現(xiàn)了基本的廣播功能。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容