[發(fā)明專利]一種處理廣播消息的方法、裝置及終端有效
| 申請?zhí)枺?/td> | 201610964179.1 | 申請日: | 2016-10-28 |
| 公開(公告)號: | CN108011860B | 公開(公告)日: | 2020-05-08 |
| 發(fā)明(設(shè)計)人: | 李煜;應(yīng)云劍;戰(zhàn)寶偉 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04M1/725 |
| 代理公司: | 北京同達信恒知識產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 馮艷蓮 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 處理 廣播 消息 方法 裝置 終端 | ||
一種處理廣播消息的方法及裝置,該方法包括確定用于接收第一廣播消息的至少一個應(yīng)用中存在N個應(yīng)用滿足第一預(yù)設(shè)條件,針對N個應(yīng)用中的每個應(yīng)用生成第二廣播消息,并將生成的N個第二廣播消息分別存儲到代理廣播消息隊列中,然后根據(jù)預(yù)設(shè)的第一速率,依次處理代理廣播消息隊列中的第二廣播消息,第一速率小于系統(tǒng)當(dāng)前向應(yīng)用發(fā)送第一廣播消息的速率。通過引入第一預(yù)設(shè)條件和代理廣播消息隊列,延遲了針對N個應(yīng)用發(fā)送第一廣播消息的時間,減少了同一時間接收第一廣播消息應(yīng)用的個數(shù),因此降低了容易導(dǎo)致系統(tǒng)資源緊張的可能性。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種處理廣播消息的方法及裝置。
背景技術(shù)
在安卓(Android)系統(tǒng)中,廣播(Broadcast)是在系統(tǒng)與應(yīng)用之間、或者應(yīng)用與應(yīng)用之間傳輸信息的一種機制。例如,廣播的信息可以為系統(tǒng)統(tǒng)計的電池的使用狀態(tài)、用于建立網(wǎng)絡(luò)連接的應(yīng)用產(chǎn)生的網(wǎng)絡(luò)連接狀態(tài)等信息。
具體的,應(yīng)用在接收廣播消息之前需要先在AMS(Activity Manager Service,活動管理服務(wù))上注冊,例如應(yīng)用1需要接收廣播消息1和廣播消息2,則應(yīng)用 1需要事先針對廣播消息1在AMS上注冊一個廣播接收器1,應(yīng)用1針對廣播消息2在AMS上注冊一個廣播接收器2,其中,目前應(yīng)用在AMS上注冊廣播接收器包括兩種方式:一種是靜態(tài)注冊,即終端在啟動后,應(yīng)用針對需要接收的廣播消息在AMS上注冊廣播接收器;一種是動態(tài)注冊,即在啟動應(yīng)用后,應(yīng)用針對需要接收廣播消息,在AMS上注冊廣播接收器,當(dāng)應(yīng)用關(guān)閉后,AMS 釋放應(yīng)用注冊的廣播接收器。一個應(yīng)用針對不同的廣播消息,可以采用不同的方式注冊廣播接收器。
以圖1為例對目前Android系統(tǒng)中發(fā)送廣播消息的具體過程進行詳細(xì)說明。如圖1所示,應(yīng)用1生成廣播消息1,通過binder向AMS發(fā)送廣播消息1,AMS 接收到廣播消息1后,根據(jù)預(yù)先配置的策略,將廣播消息1存儲到廣播消息隊列中的并行廣播消息隊列中,以及針對該廣播消息1獲取應(yīng)用2、應(yīng)用3、應(yīng)用 4事先在AMS針對廣播消息1注冊的廣播接收器2、廣播接收器3和廣播接收器4,并將獲取的廣播接收器2、廣播接收器3和廣播接收器4分別存儲到并行廣播接收器隊列中,AMS將廣播消息1分別通過廣播接收器2、廣播接收器3、廣播接收器4發(fā)送到應(yīng)用2、應(yīng)用3、應(yīng)用4,當(dāng)廣播消息需要向更多的應(yīng)用發(fā)送時,容易導(dǎo)致廣播風(fēng)暴,導(dǎo)致發(fā)送廣播消息的過程占用大量的系統(tǒng)資源,容易造成系統(tǒng)和在前臺運行的應(yīng)用發(fā)生卡頓的現(xiàn)象。
此外,AMS接收到廣播消息1后,根據(jù)預(yù)先配置的策略,還有可能將廣播消息1存儲到廣播消息隊列中的有序廣播消息隊列中,然后,針對該廣播消息1 獲取應(yīng)用2、應(yīng)用3、應(yīng)用4事先在AMS針對廣播消息1注冊的廣播接收器2、廣播接收器3和廣播接收器4,并將獲取的廣播接收器2、廣播接收器3和廣播接收器4分別存儲到有序廣播接收器隊列中,然后,AMS按照有序廣播接收器隊列中存儲廣播接收器2、廣播接收器3和廣播接收器4的先后順序,依次向應(yīng)用2、應(yīng)用3和應(yīng)用4發(fā)送廣播消息1,即假設(shè)AMS先通過廣播接收器2向應(yīng)用2發(fā)送廣播消息1,在發(fā)送完成后,在通過廣播接收器3向應(yīng)用3發(fā)送廣播消息,依次類推,若應(yīng)用3通過靜態(tài)注冊的方式在AMS上注冊了廣播接收器,而該應(yīng)用3處于未啟動狀態(tài)時,AMS在向該應(yīng)用發(fā)送廣播消息之前,需要拉起該應(yīng)用的進程。因此,當(dāng)有序廣播接收器隊列中包括的多個廣播接收器是通過靜態(tài)方式注冊,且廣播接收器分別對應(yīng)的應(yīng)用處于未啟動狀態(tài)時,則需要頻繁拉起相應(yīng)的應(yīng)用,這也會導(dǎo)致系統(tǒng)資源的緊張,從而造成系統(tǒng)和在前臺運行的應(yīng)用發(fā)生卡頓的現(xiàn)象。
綜上所述,目前在Android系統(tǒng)中若需要向應(yīng)用發(fā)送廣播消息,則針對該廣播消息有多少個應(yīng)用在AMS注冊了廣播接收器,則AMS將該廣播消息發(fā)送到所有針對該廣播消息注冊了廣播接收器的應(yīng)用,當(dāng)針對一個廣播消息注冊的廣播接收器過多時,則容易導(dǎo)致系統(tǒng)資源緊張,造成系統(tǒng)和在前臺運行的應(yīng)用發(fā)生卡頓的現(xiàn)象。
發(fā)明內(nèi)容
本發(fā)明提供一種處理廣播消息的方法及裝置,用以解決現(xiàn)有技術(shù)中當(dāng)針對一個廣播消息注冊的廣播接收器過多時,容易導(dǎo)致系統(tǒng)資源緊張,造成系統(tǒng)和前臺發(fā)生卡頓的現(xiàn)象問題。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610964179.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





