本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種控制廣播發(fā)送者發(fā)送廣播消息的方法、裝置和終端設(shè)備。
背景技術(shù):
廣播是一種被廣泛運(yùn)用的在應(yīng)用程序之間進(jìn)行信息傳輸?shù)臋C(jī)制,以安卓操作系統(tǒng)為例,其通過廣播(broadcast)來實(shí)現(xiàn)應(yīng)用程序間數(shù)據(jù)的傳輸和共享。典型的,如安卓自帶的短信、電話等廣播。
在安卓系統(tǒng)中,廣播發(fā)送者通過調(diào)用sendbroadcast函數(shù)進(jìn)行廣播消息的發(fā)送,廣播接收者通過調(diào)用registerreceiver函數(shù)在管理模塊中進(jìn)行廣播接收器(broadcastreceiver)的注冊(cè),并定義自身感興趣的廣播消息,由此來實(shí)現(xiàn)對(duì)相應(yīng)的廣播消息的接收。
現(xiàn)有技術(shù)中,廣播發(fā)送者在發(fā)送廣播消息時(shí)存在的缺陷,使得廣播處理效率低下,系統(tǒng)資源消耗過多且穩(wěn)定性差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種控制廣播發(fā)送者發(fā)送廣播消息的方法、裝置和終端設(shè)備,提高了廣播處理效率,降低了系統(tǒng)資源消耗,增加了系統(tǒng)的穩(wěn)定性。
第一方面,本發(fā)明實(shí)施例提供了一種控制廣播發(fā)送者發(fā)送廣播消息的方法,包括:
監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型;
依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù);
依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
第二方面,本發(fā)明實(shí)施例還提供了一種控制廣播發(fā)送者發(fā)送廣播消息的裝置,包括:
發(fā)送者類型確定模塊,用于監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型;
接收者參數(shù)確定模塊,依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù);
控制模塊,用于依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
第三方面,本發(fā)明實(shí)施例還提供了一種終端設(shè)備,包括:處理器、存儲(chǔ)器以及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型;
依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù);
依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
本發(fā)明實(shí)施例提供的技術(shù)方案,解決了現(xiàn)有的廣播發(fā)送者在發(fā)送廣播消息時(shí)存在的缺陷,提高了廣播處理效率,降低了系統(tǒng)資源消耗,使得系統(tǒng)穩(wěn)定性增加。
附圖說明
通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本發(fā)明實(shí)施例提供的一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖;
圖2是本發(fā)明實(shí)施例提供的另一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖;
圖3是本發(fā)明實(shí)施例提供的另一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖;
圖4是本發(fā)明實(shí)施例提供的一種控制廣播發(fā)送者發(fā)送廣播消息的裝置的結(jié)構(gòu)框圖;
圖5是本發(fā)明實(shí)施例提供的一種終端設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
圖1是本發(fā)明實(shí)施例提供的一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖,本實(shí)施例可適用于對(duì)廣播發(fā)送者發(fā)送廣播消息進(jìn)行控制處理的情況,該方法可以由本發(fā)明實(shí)施例提供的終端設(shè)備來執(zhí)行,該終端設(shè)備的控制廣播發(fā)送者發(fā)送廣播消息的裝置可采用軟件和/或硬件的方式實(shí)現(xiàn),如圖1所示,本實(shí)施例提供的具體方案如下:
s101、監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型。
在廣播處理過程中,廣播發(fā)送者的服務(wù)進(jìn)程通過調(diào)用廣播發(fā)送函數(shù)(如sendbroadcast函數(shù))將廣播消息發(fā)送至管理模塊(如activitymanagerservice,活動(dòng)管理服務(wù)),管理模塊接收到該廣播消息后將其放入廣播發(fā)送隊(duì)列,管理模塊通過進(jìn)程通信機(jī)制(如binder進(jìn)程通信機(jī)制)將廣播發(fā)送隊(duì)列中的廣播消息發(fā)送至符合接收條件的廣播接收者。
廣播機(jī)制中,廣播消息指的是系統(tǒng)或者應(yīng)用程序在運(yùn)行過程中發(fā)送的,用于系統(tǒng)和/或應(yīng)用程序之間傳輸?shù)男畔?,示例性的,廣播消息可以是系統(tǒng)啟動(dòng)廣播消息、短信類廣播消息、電話類廣播消息或者三方應(yīng)用類廣播消息等。廣播發(fā)送者發(fā)送廣播消息的過程和廣播接收者接收廣播消息的過程是異步操作過程,廣播發(fā)送者和廣播接收者通過管理模塊實(shí)現(xiàn)低耦合的關(guān)系匹配,即廣播發(fā)送者在發(fā)送廣播消息后并不關(guān)心具體的廣播接收者是誰,廣播接收者只接受自己感興趣的廣播消息,也不關(guān)心具體的廣播發(fā)送者。由此,一些第三方應(yīng)用或者惡意軟件的廣播發(fā)送者可以一直頻繁的發(fā)送廣播消息,當(dāng)該廣播消息發(fā)出后,被相應(yīng)的廣播接收者進(jìn)行接收、處理,廣播消息在處理過程中除了會(huì)消耗系統(tǒng)資源外,該廣播消息也會(huì)拉起多個(gè)未啟動(dòng)的應(yīng)用程序,造成系統(tǒng)運(yùn)行負(fù)載的顯著提高。
本步驟中,監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型。具體的,以計(jì)數(shù)器應(yīng)用程序作為廣播發(fā)送者為例,其發(fā)送廣播消息的指令可表示為:
//創(chuàng)建一個(gè)廣播消息
intentintent=newintent(broadcast_counter_action);
//傳遞計(jì)數(shù)器參數(shù)及對(duì)應(yīng)的計(jì)數(shù)值
intent.putextra(counter_value,counter);
//發(fā)送廣播消息
sendbroadcast(intent)
其中,當(dāng)監(jiān)測到廣播消息發(fā)送指令(sendbroadcast)后,確定對(duì)應(yīng)該指令的廣播發(fā)送者的類型。示例性的,廣播發(fā)送者的類型可以是系統(tǒng)類型、第三方應(yīng)用平臺(tái)類型、未知類型等。
s102、依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù)。
在一個(gè)實(shí)施例中,管理模塊對(duì)廣播發(fā)送隊(duì)列中的廣播消息依次進(jìn)行發(fā)送。廣播發(fā)送者發(fā)送廣播消息的過程和廣播接收者接收廣播消息的過程是異步操作過程,廣播發(fā)送者和廣播接收者通過管理模塊實(shí)現(xiàn)低耦合的關(guān)系匹配。其中,根據(jù)廣播發(fā)送方式的不同可將廣播消息分為普通廣播消息和有序廣播消息。普通廣播消息被管理模塊發(fā)出后,廣播接收者對(duì)該廣播消息的接收是無序的,而有序廣播消息被管理模塊發(fā)出后,廣播接收者按照順序先后依次接收,即第一個(gè)廣播接收者接收到廣播消息并處理完畢后,第二個(gè)廣播接收者才能開始接收并處理該廣播消息,依次類推。具體的,廣播接收者在接收廣播消息時(shí),管理模塊可以對(duì)廣播接收器的注冊(cè)指令進(jìn)行獲取,該廣播接收器的注冊(cè)指令由廣播接收者發(fā)出。通常,廣播接收者通過進(jìn)程通信機(jī)制向管理模塊注冊(cè)(訂閱)想要接收的廣播消息。廣播接收者的服務(wù)進(jìn)程通過調(diào)用registerreceiver函數(shù)在管理模塊中進(jìn)行廣播接收器的注冊(cè),同時(shí)定義自身感興趣的廣播消息,管理模塊在發(fā)送廣播發(fā)送隊(duì)列中的廣播消息時(shí),依據(jù)廣播接收者的注冊(cè)情況,將該廣播消息發(fā)送至對(duì)其進(jìn)行訂閱了的廣播接收者相應(yīng)的消息循環(huán)隊(duì)列中,廣播接收者接收到該廣播消息后回調(diào)注冊(cè)的廣播接收器中的接收方法(如onreceive方法)來執(zhí)行相應(yīng)的功能以對(duì)接收到的廣播消息進(jìn)行處理。
在一個(gè)實(shí)施例中,廣播接收者接收廣播消息的注冊(cè)過程可表示為(以接收s101中計(jì)數(shù)器發(fā)送的廣播消息為例):
//定義一個(gè)感興趣的廣播消息(訂閱廣播消息)
intentfiltercounteractionfilter=
newintentfilter(counterservice.broadcast_counter_action);
//進(jìn)行廣播接收器的注冊(cè)
registerreceiver(counteractionreceiver,counteractionfilter)
當(dāng)該廣播發(fā)送者發(fā)送的廣播消息(broadcast_counter_action)由管理模塊發(fā)出后,由于廣播接收者注冊(cè)了對(duì)應(yīng)的接收該廣播消息的廣播接收器,該廣播消息即會(huì)被對(duì)應(yīng)的廣播接收者接收、處理。其中,廣播消息對(duì)應(yīng)的廣播接收者的數(shù)量可以是一個(gè)或多個(gè),對(duì)應(yīng)的廣播接收者的類型由廣播接收者自身確定,包括系統(tǒng)類型、第三方應(yīng)用平臺(tái)類型、未知類型等等。
本步驟中,依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù)。在一個(gè)實(shí)施例中,該參數(shù)可以是接收該廣播消息的廣播接收者的數(shù)量;在另一實(shí)施例中,還可以是接收該廣播消息的廣播接收者的類型。
s103、依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
本步驟中,依據(jù)s101中確定的廣播發(fā)送者的類型和s102中確定的對(duì)應(yīng)的廣播接收者的參數(shù)對(duì)廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制。
在一個(gè)實(shí)施例中,在確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,還包括:對(duì)廣播發(fā)送者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中,該分類可依據(jù)廣播發(fā)送者對(duì)應(yīng)的應(yīng)用程序安裝后進(jìn)行自動(dòng)分類,也可以接收分類指令,依據(jù)分類指令對(duì)廣播發(fā)送者的類型進(jìn)行劃分,分類完畢后記錄在數(shù)據(jù)庫中以用于作為后續(xù)的比對(duì)依據(jù)。該實(shí)施例中,如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的數(shù)量大于預(yù)設(shè)數(shù)量,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。其中,第三方應(yīng)用發(fā)送的廣播為非系統(tǒng)廣播,當(dāng)該類型的廣播發(fā)送者發(fā)送廣播消息時(shí),若對(duì)應(yīng)的廣播接收者的數(shù)量較多(大于預(yù)設(shè)數(shù)量,該預(yù)設(shè)數(shù)量可以是10、20、50等)時(shí),需要對(duì)該廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制,避免系統(tǒng)資源的過度消耗,同時(shí)避免拉起多個(gè)未啟動(dòng)的廣播接收者。
在另一個(gè)實(shí)施例中,在所述確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,還包括:對(duì)廣播發(fā)送者和廣播接收者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中。其中,對(duì)廣播接收者類型的分類過程可以和廣播發(fā)送者的分類過程一致,此處不再贅述。如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的類型為預(yù)設(shè)接收類型,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。本實(shí)施例中,對(duì)廣播接收者的類型進(jìn)行判斷,如果為預(yù)設(shè)接收類型(可以是第三方應(yīng)用類型),則對(duì)廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制。需要說明的是,具體的對(duì)廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制的條件不限于上述廣播接收者的數(shù)量以及廣播接收者的類型,具體的判斷方式也不限于單獨(dú)依據(jù)廣播接收者的數(shù)量和類型進(jìn)行判斷,可以是多種確定出的廣播接收者的參數(shù)的組合。
通過上述對(duì)廣播發(fā)送者發(fā)送廣播消息的控制,避免了廣播接收者對(duì)大量的廣播消息進(jìn)行接收、處理,也避免了一些原本處于后臺(tái)運(yùn)行或者沒有運(yùn)行的廣播接收者被拉起,優(yōu)化了廣播處理機(jī)制,提高廣播處理效率,降低系統(tǒng)的資源消耗。
需要說明的是,在一個(gè)實(shí)施例中,方案為對(duì)廣播發(fā)送者進(jìn)行廣播消息的發(fā)送進(jìn)行控制,即在廣播發(fā)送者處進(jìn)行了合理的廣播消息發(fā)送的限制,廣播接收者的注冊(cè)不受影響,其中,可以是監(jiān)測到廣播發(fā)送者發(fā)送廣播消息指令至管理模塊時(shí),開始判斷是否對(duì)該廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制,還可以是監(jiān)測到管理模塊依據(jù)廣播隊(duì)列中廣播指令的次序,在發(fā)出該廣播隊(duì)列中的廣播指令時(shí),開始判斷是否對(duì)該廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制。在一個(gè)實(shí)施例中,在對(duì)廣播發(fā)送者發(fā)送廣播消息進(jìn)行控制之前,若該廣播發(fā)送者的類型為系統(tǒng)廣播類型或非第三方應(yīng)用發(fā)送的廣播消息,則不對(duì)該廣播接收者廣播消息的發(fā)送進(jìn)行控制,避免對(duì)大量系統(tǒng)廣播消息進(jìn)行控制帶來的系統(tǒng)廣播消息無法進(jìn)行及時(shí)傳遞、處理的問題。
本實(shí)施例提供的技術(shù)方案,通過監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型,依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù),依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制,解決了現(xiàn)有的廣播發(fā)送者在發(fā)送廣播消息時(shí)存在的第三方應(yīng)用頻繁發(fā)送廣播帶來的系統(tǒng)負(fù)載顯著增加的問題,提高了廣播處理效率,降低了系統(tǒng)資源消耗,使得系統(tǒng)穩(wěn)定性增加。
圖2是本發(fā)明實(shí)施例提供的另一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖,在上述實(shí)施例的基礎(chǔ)上,可選的,所述對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者。
基于上述優(yōu)化,如圖2所示,本實(shí)施例提供的技術(shù)方案具體如下:
s201、監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型。
s202、依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù)。
s203、依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者。
本步驟中采取的對(duì)廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制的措施為:禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者。在一個(gè)實(shí)施例中,s202確定出的廣播消息對(duì)應(yīng)的廣播接收者的參數(shù)包括廣播接收者的進(jìn)程是否處于啟動(dòng)狀態(tài),若處于未啟動(dòng)狀態(tài),則在s203中禁止該廣播消息發(fā)送至對(duì)應(yīng)的未啟動(dòng)狀態(tài)的廣播接收者,以避免拉起過多的廣播接收者造成系統(tǒng)負(fù)載的顯著提高。在另一實(shí)施例中,對(duì)廣播發(fā)送者廣播消息的發(fā)送進(jìn)行控制的方式還可以是:禁止所述廣播消息發(fā)送至和所述廣播發(fā)送者的處理進(jìn)程不一致的廣播接收者,該實(shí)施例中僅允許廣播消息發(fā)送至和廣播發(fā)送者進(jìn)程一致的廣播接收者,避免了其它應(yīng)用接收不必要的廣播消息造成的系統(tǒng)計(jì)算量加大的問題。需要說明的,上述兩種控制方式可單獨(dú)實(shí)現(xiàn)對(duì)廣播發(fā)送者廣播消息發(fā)送的控制還可以是一起完成對(duì)廣播發(fā)送者廣播消息發(fā)送的控制,當(dāng)然,不限于上述兩種方式,在其它實(shí)施例中還會(huì)進(jìn)行介紹。
本實(shí)施例提供了一種控制廣播發(fā)送者發(fā)送廣播消息的方法,監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型,依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù),依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者,避免了后臺(tái)未啟動(dòng)的廣播接收者被廣播消息拉起帶來的系統(tǒng)耗電量增加,運(yùn)行穩(wěn)定性差的問題,對(duì)廣播機(jī)制進(jìn)行了優(yōu)化。
圖3是本發(fā)明實(shí)施例提供的另一種控制廣播發(fā)送者發(fā)送廣播消息的方法的流程圖,在上述實(shí)施例的基礎(chǔ)上,可選的,所述對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:在預(yù)設(shè)時(shí)間內(nèi),禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送。
基于上述優(yōu)化,如圖3所示,本實(shí)施例提供的技術(shù)方案具體如下:
s301、監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型。
s302、依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù)。
s303、依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù),在預(yù)設(shè)時(shí)間內(nèi),禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送。
在一個(gè)實(shí)施例中,如果所述廣播消息對(duì)應(yīng)的廣播發(fā)送者類型為第三方應(yīng)用,同時(shí),廣播消息對(duì)應(yīng)的廣播接收者的數(shù)量大于預(yù)設(shè)數(shù)量,則在預(yù)設(shè)時(shí)間內(nèi)(可以是5分鐘、30分鐘、1小時(shí)等)禁止該廣播發(fā)送者發(fā)送廣播消息。該預(yù)設(shè)之間的長短可依據(jù)當(dāng)前系統(tǒng)的負(fù)載的大小實(shí)時(shí)確定,也可采用預(yù)先設(shè)定的默認(rèn)值。其中,系統(tǒng)負(fù)載的大小可以依據(jù)cpu占用率、內(nèi)存占用率、運(yùn)行的應(yīng)用程序的數(shù)量、剩余電量來綜合確定,示例性的,當(dāng)cpu占用率大于80%、內(nèi)存占用率大于80%、剩余電量小于20%時(shí),該預(yù)設(shè)時(shí)間確定為1小時(shí);當(dāng)cpu占用率小于20%、內(nèi)存占用率小于20%、剩余電量大于80%時(shí),該預(yù)設(shè)時(shí)間可確定為30分鐘。在另一實(shí)施例中,如果所述廣播消息對(duì)應(yīng)的廣播發(fā)送者類型為第三方應(yīng)用,同時(shí),廣播消息對(duì)應(yīng)的廣播接收者的數(shù)量大于預(yù)設(shè)數(shù)量,禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送。
本實(shí)施例提供了一種控制廣播發(fā)送者發(fā)送廣播消息的方法,監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型,依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù),依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)在預(yù)設(shè)時(shí)間內(nèi),禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送,本方案解決了現(xiàn)有的廣播發(fā)送者在發(fā)送廣播消息時(shí)可以自由發(fā)送,不能對(duì)其進(jìn)行合理控制帶來的廣播接收者接收大量廣播消息被拉起的問題,提高了廣播處理效率,降低了系統(tǒng)資源消耗,使得系統(tǒng)穩(wěn)定性增加。
圖4是本發(fā)明實(shí)施例提供的一種控制廣播發(fā)送者發(fā)送廣播消息的裝置的結(jié)構(gòu)框圖,該裝置用于執(zhí)行上述實(shí)施例提供的控制廣播發(fā)送者發(fā)送廣播消息的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。如圖4所示,該裝置具體包括:發(fā)送者類型確定模塊401、接收者參數(shù)確定模塊402、控制模塊403。
其中,發(fā)送者類型確定模塊401用于監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型;
接收者參數(shù)確定模塊402依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù);
控制模塊403用于依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
本實(shí)施例提供的技術(shù)方案,解決了現(xiàn)有的廣播發(fā)送者在發(fā)送廣播消息時(shí)存在的缺陷,提高了廣播處理效率,降低了系統(tǒng)資源消耗,使得系統(tǒng)穩(wěn)定性增加。
可選的,所述發(fā)送者類型確定模塊401具體用于:在所述確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,對(duì)廣播發(fā)送者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中;所述控制模塊403具體用于:如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的數(shù)量大于預(yù)設(shè)數(shù)量,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
可選的,所述發(fā)送者類型確定模塊401具體用于:在所述確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,對(duì)廣播發(fā)送者和廣播接收者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中;所述控制模塊403具體用于:如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的類型為預(yù)設(shè)接收類型,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
可選的,所述控制模塊403具體用于:禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者;和/或禁止所述廣播消息發(fā)送至和所述廣播發(fā)送者的處理進(jìn)程不一致的廣播接收者。
可選的,所述控制模塊403具體用于:禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送;或在預(yù)設(shè)時(shí)間內(nèi),禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送。
本實(shí)施例在上述各實(shí)施例的基礎(chǔ)上提供了一種終端設(shè)備,該終端設(shè)備可以包括本發(fā)明提供的控制廣播發(fā)送者發(fā)送廣播消息的裝置。圖5是本發(fā)明實(shí)施例提供的一種終端設(shè)備的結(jié)構(gòu)示意圖,如圖5所示,該終端設(shè)備可以包括:存儲(chǔ)器501、中央處理器(centralprocessingunit,cpu)502、外設(shè)接口503、rf(radiofrequency,射頻)電路505、音頻電路506、揚(yáng)聲器511、電源管理芯片508、輸入/輸出(i/o)子系統(tǒng)509、觸摸屏512、其他輸入/控制設(shè)備510以及外部端口504,這些部件通過一個(gè)或多個(gè)通信總線或信號(hào)線507來通信。
應(yīng)該理解的是,圖示終端設(shè)備500僅僅是終端設(shè)備的一個(gè)范例,并且終端設(shè)備500可以具有比圖中所示出的更多的或者更少的部件,可以組合兩個(gè)或更多的部件,或者可以具有不同的部件配置。圖中所示出的各種部件可以在包括一個(gè)或多個(gè)信號(hào)處理和/或?qū)S眉呻娐吩趦?nèi)的硬件、軟件、或硬件和軟件的組合中實(shí)現(xiàn)。
下面就本實(shí)施例提供的用于多開應(yīng)用的權(quán)限管理的終端設(shè)備進(jìn)行詳細(xì)的描述,該終端設(shè)備以智能手機(jī)為例。
存儲(chǔ)器501,所述存儲(chǔ)器501可以被cpu502、外設(shè)接口503等訪問,所述存儲(chǔ)器501可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如一個(gè)或多個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
外設(shè)接口503,所述外設(shè)接口503可以將設(shè)備的輸入和輸出外設(shè)連接到cpu502和存儲(chǔ)器501。
i/o子系統(tǒng)509,所述i/o子系統(tǒng)509可以將設(shè)備上的輸入輸出外設(shè),例如觸摸屏512和其他輸入/控制設(shè)備510,連接到外設(shè)接口503。i/o子系統(tǒng)509可以包括顯示控制器5091和用于控制其他輸入/控制設(shè)備510的一個(gè)或多個(gè)輸入控制器5092。其中,一個(gè)或多個(gè)輸入控制器5092從其他輸入/控制設(shè)備510接收電信號(hào)或者向其他輸入/控制設(shè)備510發(fā)送電信號(hào),其他輸入/控制設(shè)備510可以包括物理按鈕(按壓按鈕、搖臂按鈕等)、撥號(hào)盤、滑動(dòng)開關(guān)、操縱桿、點(diǎn)擊滾輪。值得說明的是,輸入控制器5092可以與以下任一個(gè)連接:鍵盤、紅外端口、usb接口以及諸如鼠標(biāo)的指示設(shè)備。
觸摸屏512,所述觸摸屏512是用戶終端與用戶之間的輸入接口和輸出接口,將可視輸出顯示給用戶,可視輸出可以包括圖形、文本、圖標(biāo)、視頻等。
i/o子系統(tǒng)509中的顯示控制器5091從觸摸屏512接收電信號(hào)或者向觸摸屏512發(fā)送電信號(hào)。觸摸屏512檢測觸摸屏上的接觸,顯示控制器5091將檢測到的接觸轉(zhuǎn)換為與顯示在觸摸屏512上的用戶界面對(duì)象的交互,即實(shí)現(xiàn)人機(jī)交互,顯示在觸摸屏512上的用戶界面對(duì)象可以是運(yùn)行游戲的圖標(biāo)、聯(lián)網(wǎng)到相應(yīng)網(wǎng)絡(luò)的圖標(biāo)等。值得說明的是,設(shè)備還可以包括光鼠,光鼠是不顯示可視輸出的觸摸敏感表面,或者是由觸摸屏形成的觸摸敏感表面的延伸。
rf電路505,主要用于建立手機(jī)與無線網(wǎng)絡(luò)(即網(wǎng)絡(luò)側(cè))的通信,實(shí)現(xiàn)手機(jī)與無線網(wǎng)絡(luò)的數(shù)據(jù)接收和發(fā)送。例如收發(fā)短信息、電子郵件等。具體地,rf電路505接收并發(fā)送rf信號(hào),rf信號(hào)也稱為電磁信號(hào),rf電路505將電信號(hào)轉(zhuǎn)換為電磁信號(hào)或?qū)㈦姶判盘?hào)轉(zhuǎn)換為電信號(hào),并且通過該電磁信號(hào)與通信網(wǎng)絡(luò)以及其他設(shè)備進(jìn)行通信。rf電路505可以包括用于執(zhí)行這些功能的已知電路,其包括但不限于天線系統(tǒng)、rf收發(fā)機(jī)、一個(gè)或多個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、數(shù)字信號(hào)處理器、codec(coder-decoder,編譯碼器)芯片組、用戶標(biāo)識(shí)模塊(subscriberidentitymodule,sim)等等。
音頻電路506,主要用于從外設(shè)接口503接收音頻數(shù)據(jù),將該音頻數(shù)據(jù)轉(zhuǎn)換為電信號(hào),并且將該電信號(hào)發(fā)送給揚(yáng)聲器511。
揚(yáng)聲器511,用于將手機(jī)通過rf電路505從無線網(wǎng)絡(luò)接收的語音信號(hào),還原為聲音并向用戶播放該聲音。
電源管理芯片508,用于為cpu502、i/o子系統(tǒng)及外設(shè)接口所連接的硬件進(jìn)行供電及電源管理。
本發(fā)明實(shí)施例提供的cpu502可執(zhí)行如下操作:
監(jiān)測到廣播消息的發(fā)送指令后,確定發(fā)送所述廣播消息的廣播發(fā)送者的類型;
依據(jù)所述廣播消息確定接收所述廣播消息的廣播接收者的參數(shù);
依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
可選的,在所述確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,還包括:對(duì)廣播發(fā)送者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中;相應(yīng)的,所述依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的數(shù)量大于預(yù)設(shè)數(shù)量,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
可選的,在所述確定發(fā)送所述廣播消息的廣播發(fā)送者的類型之前,還包括:對(duì)廣播發(fā)送者和廣播接收者的類型進(jìn)行分類,并將分類結(jié)果記錄在數(shù)據(jù)庫中;相應(yīng)的,所述依據(jù)所述廣播發(fā)送者的類型和確定出的所述廣播接收者的參數(shù)對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:如果所述廣播發(fā)送者的類型為預(yù)設(shè)類型,所述預(yù)設(shè)類型包括第三方平臺(tái)應(yīng)用類型,且所述廣播接收者的類型為預(yù)設(shè)接收類型,則對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制。
可選的,所述對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:
禁止所述廣播消息發(fā)送至系統(tǒng)后臺(tái)未啟動(dòng)的廣播接收者;和/或禁止所述廣播消息發(fā)送至和所述廣播發(fā)送者的處理進(jìn)程不一致的廣播接收者。
可選的,所述對(duì)所述廣播發(fā)送者的廣播消息的發(fā)送進(jìn)行控制包括:禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送;或在預(yù)設(shè)時(shí)間內(nèi),禁止所述廣播發(fā)送者進(jìn)行廣播消息的發(fā)送。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
廣播接收者在接收廣播消息時(shí),管理模塊可以對(duì)廣播接收器的注冊(cè)指令進(jìn)行獲取,該廣播接收器的注冊(cè)指令由廣播接收者發(fā)出。通常,廣播接收者通過進(jìn)程通信機(jī)制向管理模塊注冊(cè)(訂閱)想要接收的廣播消息。廣播接收者的服務(wù)進(jìn)程通過調(diào)用registerreceiver函數(shù)在管理模塊中進(jìn)行廣播接收器的注冊(cè),同時(shí)定義自身感興趣的廣播消息,管理模塊在發(fā)送廣播發(fā)送隊(duì)列中的廣播消息時(shí),依據(jù)廣播接收者的注冊(cè)情況,將該廣播消息發(fā)送至對(duì)其進(jìn)行訂閱了的廣播接收者相應(yīng)的消息循環(huán)隊(duì)列中,廣播接收者接收到該廣播消息后回調(diào)注冊(cè)的廣播接收器中的接收方法(如onreceive方法)來執(zhí)行相應(yīng)的功能以對(duì)接收到的廣播消息進(jìn)行處理。