<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                Broadcast,漢語意思為“廣播”。它是Android平臺中的一種通知機制。從廣義來說,它是一種進程間通信的手段。有廣播,就對應有廣播接收者。Android中四大組件之一的BroadcastReceiver即代表廣播接收者。目前,系統提供兩種方式來聲明一個廣播接收者。 - 在AndroidManifest.xml中聲明<receiver>標簽。在應用程序運行時,系統會利用Java反射機制構造一個廣播接收者實例。本書將這種廣播接收者稱為靜態注冊者或靜態接收者。 - 在應用程序運行過程中,可調用Context提供的registerReceiver函數注冊一個廣播接收者實例。本書將這種廣播接收者稱為動態注冊者或動態接收者。與之相對應,當應用程序不再需要監聽廣播時(例如當應用程序退到后臺時),則要調用unregisterReceiver函數撤銷之前注冊的BroadcastReceiver實例。 當系統將廣播派發給對應的廣播接收者時,廣播接收者的onReceive函數會被調用。在此函數中,可對該廣播進行相應處理。 另外,Android定義了三種不同類型的廣播發送方式,它們分別是: - 普通廣播發送方式,由sendBroadcast及相關函數發送。以工作中的場景為例,當程序員們正埋頭工作之時,如果有人大喊一聲“吃午飯去”,前刻還在專心編碼的人即作鳥獸散。這種方式即為普通廣播發送方式,所有對“吃午飯”感興趣的接收者都會響應。 - 串行廣播發送方式,即ordered廣播,由sendOrdedBroadcast及相關函數發送。在該類型方式下,按接收者的優先級將廣播一個個地派發給接收者。只有等這一個接收者處理完畢,系統才將該廣播派發給下一個接收者。其中,任意一個接收者都可以中止后續的派發流程。還是以工作中的場景為例:經常有項目經理(PM)深夜組織一幫人跟蹤bug的狀態。PM看見一個bug,問某程序員,“這個bug你能改嗎?”如果得到的答案是“暫時不會”或“暫時沒時間”,他會將目光轉向下一個神情輕松者,直到找到一個擔當者為止。這種方式即為ordered廣播發送方式,很明顯,它的特點是“一個一個來”。 - Sticky廣播發送方式,由sendStickyBroadcast及相關函數發送。Sticky的意思是“粘”,其背后有一個很重要的考慮。我們舉個例子:假設某廣播發送者每5秒發送一次攜帶自己狀態信息的廣播,此時某個應用進程注冊了一個動態接收者來監聽該廣播,那么該接收者的OnReceive函數何時被調用呢?在正常情況下需要等這一輪的5秒周期結束后才調用(因為發送者在本周期結束后會主動再發一個廣播)。而在Sticky模式下,系統將馬上派發該廣播給剛注冊的接收者。注意,這個廣播是系統發送的,其中存儲的是上一次廣播發送者的狀態信息。也就是說,在Sticky模式下,廣播接收者能立即得到廣播發送者的信息,而不用等到這一輪周期結束。其實就是系統會保存Sticky的廣播[^①],當有新廣播接收者來注冊時,系統就把Sticky廣播發給它。 以上我們對廣播及廣播接收者做了一些簡單介紹,讀者也可參考SDK文檔中的相關說明來加強理解。 下面將以動態廣播接收者為例,分析Android對廣播的處理流程。 [^①]:由于系統內部保存了Stikcy廣播,當一個惡意程序頻繁發送這種廣播時,是否會把內存都耗光呢?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看