スレッドなしでJ2ME Midletをスリープ状態にしますか?
-
06-07-2019 - |
質問
簡単な質問... J2ME(CLDC 1.1、MIDP-2.1)を使用すると、Midletを一定期間スリープ状態にすることができます(スレッドを使用しない)...例:
public class myMidlet extends MIDlet{
public void startApp() {
/* Sleep for 10 seconds */
/* The answer was: */
try {
Thread.sleep(time_ms);
} catch (Exception e) {}
}
...
Javaはそれほど使用せず、単純なスリープのためだけにスレッドをプログラムしたくない。
よろしくお願いします
回答の要約
Javaの知識の不足。 Thread.sleep()を使用して見た例は、Midlet自体ではなく、Midletによって生成されたスレッドオブジェクトでのみ使用可能であると信じるようになりました。スリープするためにミッドレットロジックをスレッドにスプールする必要はありませんでした...しかし、今ではデフォルトのスレッドでミッドレットが実行されていることがわかりました:) 私は今までその言語を使用するとは思わない
解決
ミッドレットを一時停止状態にするのか、指定した時間だけ実行を停止するのかを理解できませんでした。
後者の場合、実際に私は迷わず、なぜスレッドを使用したくないのか、これは大したことではありません。必要な場所に次の3行を挿入するだけです。
try {
Thread.sleep(10000);
} catch (Exception ex) {}
これですべてです。複雑すぎることはありません。
他のヒント
正確な答えはわかりませんが、指定されたスレッドについて、現在実行中のスレッドをスリープ(一時的に実行を停止)する静的メソッドThread.sleep(milliseconds)を呼び出すことの問題点もわかりません。ミリ秒数」 。このプログラミングスレッドを呼び出しますか?
スレッドが例外をスローする可能性があるため、マルコムのアプローチに進みます。
[...]そしてスレッドをプログラムしたくない ただ[...]
ええと、J2MEのプログラミングに苦労し、スレッド化されたプログラミングを避けようとするでしょう。特にネットワーク接続を使用する場合、アプリが少し複雑になると、スレッドを使用する必要があります。さらに、一部の操作に2〜3秒以上かかる場合は、別のスレッドで実行することをお勧めします。おそらく(同時に)ユーザーに進行中の作業について通知します。
ところで、私が忘れていたこと。私は最近、大学のコースのJ2MEアプリケーションを作成しました。そこで、「ExecutableTask」と呼ばれるものを作成しました。便利で簡単な方法でスレッドを処理できました。 ソースを見る ...したい場合は、残念ながらGoogleリポジトリでオンラインで閲覧することはできませんGoogleのホスティングソリューションのバグ(私のプロジェクトの名前が原因です)。
Object.wait()
、 Object.wait(long timeoutValue)
を使用してみてください。メインのstartApp()/システムスレッドを試して遅延させることはお勧めしませんが。