1

ユーザーがアラーム時刻を設定できる Lwuit アプリケーションに目覚まし時計/リマインダー機能を実装したいと思います。その時点で、リマインダー ダイアログがアラーム音と共にポップアップします。しかし、私はアプローチについて確信が持てません。したがって、以下の質問のいずれかに関するヘルプをいただければ幸いです。

  • lwuit や EDT に干渉することなく、どのフォームが表示されていても、タイマーを常に実行し続けるにはどうすればよいですか?

  • リマインダー ダイアログ ボックスをポップアップさせるトリガー メカニズムを実装する正しい方法は何ですか? これは、現在表示されているフォームに関係なく、いつでも発生する可能性があり、進行中のユーザー操作を妨げてはならないため、リマインダー ダイアログが閉じられると、ユーザーはリマインダーがポップアップしたときにどこにいても続行できます。

  • 最後に、アプリケーションが閉じているとき、またはフォアグラウンドで実行されていないときに、タイマーを実行し続けるにはどうすればよいでしょうか? 新しい既存の CodenameOne が登場するので、J2ME、iOS、および Android の両方で動作するソリューションを明らかに望んでいます。

答えが明らかな場合は申し訳ありませんが、確実な解決策を見つけることができませんでした。

4

1 に答える 1

2

1) 汎用タイマーに java.util.Timer を使用できます。そのコールバックは EDT から発生します。そのため、LWUIT を使用するには、EDT を使用してコールバックしDisplay.getInstance().callSerially()、コールバック内にコードを含める必要がありRunnableます。

2) 目立たない方法で入力と表示をブロックしないようにするために、ガラス板を使用して、画面の上部に半透明の要素を表示することができます。入力をブロックすることはありません。LWUIT Chat デモ アプリケーションにそのサンプルがあります。

3) できません。バックグラウンド プロセスの実行は、実際にはどのデバイスでもサポートされているわけではありません。すべてのデバイスには、非常に特殊な方法でアプリケーションを作成する必要がある、バックグラウンド実行用の特別な「ユース ケース ベース」のソリューションがあります。Codename Oneはプッシュ通知のサポートを追加し、サーバーからアラームをプッシュできるようにします。Seams は最初は直感に反しますが、バックグラウンド プロセスによって消費されるバッテリー寿命を考慮すると、なぜこれが行われたのかが明らかになります。

于 2012-03-04T06:28:01.017 に答える