ホーム > デベロッパ > BREW FAQ

BREW FAQ : イベント

イベント ハンドラとは ?

イベント ハンドラとは、BREW 実行環境からのさまざまな通知 (イベント) を受け取る関数です。 ユーザーがキーを押したときや、アプリケーションの開始時、または終了時などに呼び出されます。

BREW のイベントハンドラの詳細は、BREW プログラミング入門 「イベント処理って何だ?」を参照してください。

      

イベントの種類は、どれくらいありますか ?

BREW SDK 2.1 には、40 種類以上のイベントが存在しています。 SophiaFramework では、BREW 標準のイベントに加え、独自に定義しているイベントが数種類存在します。

BREW のイベントの詳細は、BREW プログラミング入門 「イベント処理って何だ?」 を参照してください。
BREW のイベントの一覧は、『BREW API リファレンス』の 1289 ページ「イベントコード」を参照してください。

SophiaFramework のイベントの詳細は、『SophiaFramework リファレンス』の「17.5. イベントの種類と詳細」を参照してください。

      

イベントキューに溜まっているイベントを取得する関数はありますか ?

BREW 2.1 では、イベントキューに溜まっているメッセージを取得・操作する関数はありません。 ユーザーは IAPPLET_HandleEvent() がコールされた場合に限り、イベントを取得できます。

      

BREW アプリが EVT_APP_SUSPEND イベントや EVT_APP_RESUME イベントを受信した場合、 開発者はどのような処理を実装する必要がありますか ?

BREW アプリが EVT_APP_SUSPEND イベントや EVT_APP_RESUME イベントを受信した場合、 開発者は中断処理や復帰処理を実装する必要があります。

例えば、EVT_APP_SUSPEND イベントを受信した場合は、 オープン中のファイルのクローズやソケットの解放、再生中のサウンドの停止などを行う必要があります。 また、EVT_APP_RESUME イベントの受信時は、画面の再描画などを行う必要があります。

      

中断(EVT_APP_SUSPEND)、再開(EVT_APP_RESUME) メッセージが送られてきた場合、BREW は自動でスタック、ヒープなどの情報の退避、復帰を行いますか?

アプリケーションが EVT_APP_SUSPEND イベントや EVT_APP_RESUME イベントを受信した場合、ユーザー自身が中断処理や復帰処理を実装する必要があります。例えば、EVT_APP_SUSPEND イベントを受信した場合は、オープン中のファイルのクローズやソケットの解放、再生中のサウンドの停止などを行う必要があります。また、EVT_APP_RESUME イベントの受信時は、画面の再描画などを行う必要があります。

BREW は、ヒープ領域を他のアプリケーションと共有していますので、EVT_APP_SUSPEND イベントの受信時にユーザーは、必要に応じてヒープの解放を行うことが行うことが推奨されています。

      

オンフック(終了キー)キー押下を回避する方法はありますか?

オンフックキー(終了キー)押下によるアプリの終了処理を回避する方法はないようです。オンフックキー(終了キー)を押した場合、アプリは「EVT_KEY」イベントを受信せず、「EVT_APP_STOP」イベントを受信します。「EVT_APP_STOP」イベントは、アプリケーションを終了する場合にBREW 環境から送られてくるイベントです。

      

カメラのイベントハンドリングの注意事項は?

プレビュー モードとスナップショット モードとの切り替えを行う場合は、ICAMERA_Stop() によってカメラを一度停止させる必要があります。

一方コールバック関数内では、カメラが停止したことは通知されますが、なぜカメラが停止したのか (スナップショット モードに移行するためなのか、それとも本当にカメラを停止するためなのか) は通知されません。この問題の解決法は BREW プログラミング入門 「BREW でカメラ」で詳しく解説していますので、そちらをご覧ください。

      

カメラに関連するイベントとそのハンドリングの例を教えてください。

カメラのイベント処理は複雑です。 BREW プログラミング入門 「BREW でカメラ」で詳しく解説していますので、そちらをご覧ください。

      

カメラのサスペンドとレジュームは BREW がやってくれますか?

いいえ。

カメラのサスペンドとレジュームは BREW では行いません。ユーザーの責任において、サスペンド時には ICamera インターフェースの解放を、レジューム時には ICamera インターフェースの再生成を行ってください。