2012-03-03 10 views
1

私はLwuitアプリケーションでアラーム時計/リマインダー機能を実装したいと考えています.Lwuitアプリケーションでは、ユーザーがアラーム時刻を設定することができ、その時にリマインダーダイアログがアラーム音でポップアップします。しかし、私はそのアプローチについて確信していません。そこで、以下のいずれかの質問に助けをいただければ幸いです。LWUITで目覚まし時計/リマインダー機能を構築する方法は?

  • がどのように絶えず、関係なく表示されているものを形成し実行していないタイマーを維持するために、例えばルワイトとEDTに干渉することなく?

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

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

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

答えて

2

1)あなたはLWUITを使用するために、あなただけのDisplay.getInstance().callSerially()を使用しEDTにコールバックする必要があるだろうとRunnable以内にあなたのコードを持っているように、そのコールバックがEDTオフが発生する、汎用のタイマー用java.util.Timerを使用することができます折り返し電話。

2)邪魔にならないように入力と表示をブロックしないようにするには、グラスペインを使用して画面上部に半透明の要素を表示します。それは決して入力をブロックしません。 LWUITチャットデモアプリケーションにそのサンプルがあります。

3)できません。バックグラウンドプロセスの実行は、どのデバイスでも実際にはサポートされていません。すべてのデバイスには、バックグラウンド実行のための特別な「ユースケースベース」のソリューションがあります。 Codename Oneは、サーバーからアラームをプッシュできるプッシュ通知のサポートを追加します。 Seamsは最初は直感的ではありませんが、バックグラウンドプロセスによって取り込まれるバッテリ寿命の長さを考えると、なぜこれが行われたのかははっきりしています。

+0

ありがとうございました!これらすべての質問に答える時間を見つけるのはすばらしいことです。 – user1246562

+0

について1)これは実際に試した解決策のタイプですが、詳細を間違えているに違いありません。私はそれが正しい道だと知っています.-) 2)私はガラス板の使用について考えていませんでした。しかし、入力がブロックされていてもOKですので、Dialog(EDTから呼び出されます)はOK解決策になると思います。たぶんそれは1)の私の問題のために動作しませんでした。チャットのデモも見ていきます。約3)私はそれが私が得ると恐れていた答えだと思う;-)しかし、サーバーソリューションは興味深いように聞こえる - それはすでにlwuitで利用可能ですか? – user1246562

+0

プッシュ通知はLWUITでは使用できません。 Codename Oneでも、スマートフォンでのみサポートし、J2MEデバイスではサポートしません。なぜなら、実現不可能なオペレータ/製造元の署名がない限り、このようなデバイスでは何もできないからです。 –