《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之79——BREW應用間通訊之事件傳遞

來源:互聯網
上載者:User

使用者自訂事件的傳遞是應用間通訊的一種有效方法。使用者自訂的事件應當大於等於EVT_USER (0X7000),ISHELL_RegisterEvent()可根據輸入字串註冊自訂的 AEEEvent。 該函數允許應用程式動態保留事件備用,而無須擔心與其它 EVT_USER 範圍事件代碼發生衝突。需要注意的是,事件僅在一次開關機迴圈內有效,在下一次開關機註冊的同一事件,很可能返回不同的 AEEEvent。如果提供了指向 pnCount 的指標,則更新事件被註冊的次數。

事件通過 ISHELL_SendEvent() 發送給啟用的對話方塊或應用,實現了對目標應用的控制。 此函數直接向目標應用發送事件。通過指定目標應用,可以向特定的應用發送事件。如果應用當前沒有運行,則會載入應用,並直接向它發送事件。這時的應用將在後台啟動(不嚮應用發送 EVT_APP_START 和 EVT_APP_STOP 事件)。ISHELL_PostEvent()用於向指定的應用傳遞非同步事件。 該函數的功能與 ISHELL_SendEvent() 函數相似。主要的不同之處在於, ISHELL_SendEvent() 是將事件立即發送給應用。

事件傳遞是針對特殊情況提供的,例如,調用程式從其它任務傳遞事件,或者將事件處理延遲到下一個事件迴圈。ISHELL_PostEventEx()用於向指定的應用傳遞非同步事件。此函數與 ISHELL_PostEvent()函數非常相似。主要的區別在於,此函數允許向同一個應用傳遞同一類型的多個事件(同一事件代碼)並讓事件排隊等待分發。

在BREW 3.X 以後,應用還可以通過ISHELL_SendURL()和ISHELL_PostURL()向另一個應用同步或非同步發送指定的事件EVT_APP_POST_URL,另一個應用在接收到EVT_APP_POST_URL事件後,可以獲得事件中的資料,從而完成通訊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.