2008/05/06(火) [n年前の日記]
#2 [iappli] レジューム時の動作確認アプリを実機で動かした
けど、どうも動作がわからん…。
今まで作っていたアプリの場合、終了ボタンを押して「終了しますか? YES/NO」で「NO」を選択、する際に、ずっと選択キーを押しっぱなしにすると、アプリ側に選択キーのキートリガが入ってしまってシーンが先に進んでしまう。レジューム処理内( resume() )でキーバッファのワークはクリアしているし、その際にカウンタをセットして、キー入力がなくなるまでトリガは作らない処理にしているはずなのだけど。
今回作成した動作確認用アプリは、今まで作っていたアプリのメインループだのキー入力チェックだのをそのままコピペして作成したアプリ。なのだけど。終了ボタンを押して「NO」を選んで選択キーを押しっぱなしにしても、キートリガが入らない=シーンが先に進まない。うーん。ここでシーンが先に進んでくれれば不具合解決に役立ちそうなのに。どうして同じ流れのソースなのに結果が違うんだろう。
ただ、動作確認用アプリにおいても、「NO」を押した直後に、レジューム処理よりメインの通常処理が先に実行されてしまう現象が、ごく稀ではあるけれど発生することは確認できた。>P902iSの場合。
iアプリの場合、サスペンドに入ったことを検知する機能はなく、レジューム時かどうかを知る術は、IApplication の resume() か、Canvas の processEvent() 内で Display.RESUME_VM_EVENT を調べるしかないようで。順番としては、例えば jguidefordoja5_x_070423.pdf にも記載されているけど、RESUME_VM_EVENT が実行された後に、resume() が呼ばれるらしい。それは動作確認アプリでも確認できたのだけど。…「レジューム時にこれが呼ばれますよ」となっている処理よりも先にメイン処理が実行されてしまうと、その際のキー入力はアプリに対するものではなく、終了メニューの操作で入力されたものであると推測することができないわけで。うーん。
ちなみに、動作確認用アプリのソースはこんな感じ。 _ResumeTest.java 。
色づけhtml版。 _ResumeTest.java
今まで作っていたアプリの場合、終了ボタンを押して「終了しますか? YES/NO」で「NO」を選択、する際に、ずっと選択キーを押しっぱなしにすると、アプリ側に選択キーのキートリガが入ってしまってシーンが先に進んでしまう。レジューム処理内( resume() )でキーバッファのワークはクリアしているし、その際にカウンタをセットして、キー入力がなくなるまでトリガは作らない処理にしているはずなのだけど。
今回作成した動作確認用アプリは、今まで作っていたアプリのメインループだのキー入力チェックだのをそのままコピペして作成したアプリ。なのだけど。終了ボタンを押して「NO」を選んで選択キーを押しっぱなしにしても、キートリガが入らない=シーンが先に進まない。うーん。ここでシーンが先に進んでくれれば不具合解決に役立ちそうなのに。どうして同じ流れのソースなのに結果が違うんだろう。
ただ、動作確認用アプリにおいても、「NO」を押した直後に、レジューム処理よりメインの通常処理が先に実行されてしまう現象が、ごく稀ではあるけれど発生することは確認できた。>P902iSの場合。
iアプリの場合、サスペンドに入ったことを検知する機能はなく、レジューム時かどうかを知る術は、IApplication の resume() か、Canvas の processEvent() 内で Display.RESUME_VM_EVENT を調べるしかないようで。順番としては、例えば jguidefordoja5_x_070423.pdf にも記載されているけど、RESUME_VM_EVENT が実行された後に、resume() が呼ばれるらしい。それは動作確認アプリでも確認できたのだけど。…「レジューム時にこれが呼ばれますよ」となっている処理よりも先にメイン処理が実行されてしまうと、その際のキー入力はアプリに対するものではなく、終了メニューの操作で入力されたものであると推測することができないわけで。うーん。
ちなみに、動作確認用アプリのソースはこんな感じ。 _ResumeTest.java 。
色づけhtml版。 _ResumeTest.java
[ ツッコむ ]
以上です。