2008年5月12日月曜日

文字入力の強制終了

アプリ中で文字入力機能(IME)を使用した際に、バックグラウンドスレッドから強制的に終了できるか調査した。

[Sアプリ環境(MEXAエミュレータ)]
可能(Display.setCurrent()で強制切替可能)。

[iアプリ環境(DoJaエミュレータ)]
不可能。
Canvas.imeOn()中にDisplay.setCurrent()を行ったが切り替わらなかった(例外は発生せずsetCurrent()で処理が中断されている様子)。DoJaの開発ガイドPDFには、imeOn()中にsetCurrent()を行った場合の挙動は機種依存であると記載されている。Panel+TextBoxを使用した場合もsetCurrent()で切り替えられなかった。

したがってiアプリ環境では文字入力の強制終了は使用できない模様。

※ちなみに文字入力起動中において、バックグラウンドスレッドのHTTP通信等は両環境で可能だった。