BREW應用間通信之事件傳遞

用戶自定義事件的傳遞是應用間通信的一種有效方法。用戶自定義的事件應當大於等於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事件後,可以獲得事件中的數據,從而完成通信。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章