日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android面试,BroadCastReceiver的两种注册方式的异同

發(fā)布時(shí)間:2023/12/10 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android面试,BroadCastReceiver的两种注册方式的异同 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在Android手機(jī)應(yīng)用程序中開(kāi)發(fā)中,需要用到BroadcastReceiver來(lái)監(jiān)聽(tīng)廣播的消息。在自定義好BroadcastReceiver ,需要對(duì)其進(jìn)行注冊(cè),注冊(cè)有兩種方法:

一種是在代碼當(dāng)中注冊(cè),注冊(cè)的方法是registerReceiver(receiver,filter)(用Activity的實(shí)例來(lái)調(diào)用),取消注冊(cè)的方法:unregisterReceiver(receiver),如果一個(gè)BroadcastReceiver用于更新UI(User Interface),那么通常會(huì)使用這種方法進(jìn)行注冊(cè)在Activity啟動(dòng)的時(shí)候進(jìn)行注冊(cè),在Activity不可見(jiàn)后取消注冊(cè)

另一種就是在AndroidManifest當(dāng)中進(jìn)行注冊(cè)

使用代碼進(jìn)行注冊(cè)????????????????????????????????????????????????????????????????????

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); IncomingSMSReceiver receiver = new IncomingSMSReceiver(); registerReceiver(receiver, filter);

在AndroidManifest.xml文件中的<application>節(jié)點(diǎn)里進(jìn)行注冊(cè)???????????????????

<receiver android:name=".IncomingSMSReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>

注冊(cè)完之后即可以發(fā)送廣播,使用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()來(lái)實(shí)現(xiàn),接收端代碼:

public class IncomingSMSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //todo...接收廣播,做自己的業(yè)務(wù) } }

區(qū)別???????????????????????????????????????????????????????????????????????????????????

  • 在AndroidManifest中進(jìn)行注冊(cè)后,不管改應(yīng)用程序是否處于活動(dòng)狀態(tài),都會(huì)進(jìn)行監(jiān)聽(tīng),比如某個(gè)程序時(shí)監(jiān)聽(tīng) 內(nèi)存 的使用情況的,當(dāng)在手機(jī)上安裝好后,不管改應(yīng)用程序是處于什么狀態(tài),都會(huì)執(zhí)行改監(jiān)聽(tīng)方法中的內(nèi)容。

在代碼中進(jìn)行注冊(cè)后,當(dāng)應(yīng)用程序關(guān)閉后,就不再進(jìn)行監(jiān)聽(tīng)。我們讀知道,應(yīng)用程序是否省電,決定了該應(yīng)用程序的受歡迎程度,所以,對(duì)于那些沒(méi)必要在程序關(guān)閉后仍然進(jìn)行監(jiān)聽(tīng)的Receiver,在代碼中進(jìn)行注冊(cè),無(wú)疑是一個(gè)明智的選擇。

我是天王蓋地虎的分割線?????????????????????????????????????????????????????????????

?

總結(jié)

以上是生活随笔為你收集整理的Android面试,BroadCastReceiver的两种注册方式的异同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。