投稿テストも兼ねて、以前の開発中に気付いたことのメモをば。
Google App Inventorで時間に関わる処理を利用するときに必須になるのがClockコンポーネントだ。
そのClockコンポーネントにはちょっとクセのあるプロパティ、TimerAlwaysFiresがある。
--------------------------------------------------
TimerAlwaysFires
true の場合、アプリケーションが画面に表示されていない場合でもタイマーの通知が行われる。
(ソフトウェア技術ドキュメントを勝手に翻訳より引用)
--------------------------------------------------
平たく言えば、“そのタイマーをバックグラウンドで動作させるか”と言ったところだろうか。
最初はあまり気にせずに開発を行っていたのだが、アプリをパッケージングした際に問題が発生した。
そのアプリでは一定間隔ごと処理を行って居りボタンクリックで停止する使用だったのだが、以下の手順を踏んだ際にタイマーが不可解な動作をした。
アプリ起動→戻る→アプリ起動
不可解な動作とは、一定間隔ごとに行われる処理の間隔が短くなり、またクリックしてもタイマーが停止しなくなった。
どうやらアプリを起動するごとにタイマーが二重、三重と動作してるようだ。
そこで重要になってくるのがこのTimerAlwaysFiresプロパティだ。
結局のところ、このプロパティが有効になっていた為、
二度目の起動以降でもそれ以前のタイマーが動作してしまっていた。
このプロパティを無効にしてパッケージングを行うと期待通りの動作をしてくれたことは言うまでもない。
ただ、ここで一つ注意することがある。
エミュレータで動作確認を行う場合、TimerAlwaysFiresプロパティを有効にしておく必要がある。
すべての検証を行ったわけではないが、少なくともTimerInterval(一定間隔の処理)は動作してくれなかった。
エミュレータで開発を行うときと、実機へ転送する際のプロパティが異なるのは非常に面倒である。
やはり、開発を行うときは実機を用いてそれを基準に間髪することが理想だと感じた。
以上、投稿テストを兼ねた個人的なメモでした。
0 件のコメント:
コメントを投稿