0

簡単な質問... 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 によって生成されたスレッド オブジェクトでのみ使用できると思いました。Midlet のロジックをスレッドにスプールしてスリープ状態にする必要はありませんでした...しかし、今では Midlet がデフォルトのスレッドで実行されることがわかりました :)私はこれまでにその言語を使用します

4

4 に答える 4

6

midlet を一時停止状態にするという意味なのか、指定された時間だけ実行を停止するという意味なのかわかりませんでした。

後者の場合、実際には、スレッドを使用したくない理由はわかりませんが、これは大したことではありません。必要な場所に次の 3 行を挿入するだけです。

try {
    Thread.sleep(10000);
} catch (Exception ex) {}

それほど複雑なことはありません。

于 2009-06-20T15:20:29.413 に答える
2

正確な答えはわかりませんが、静的メソッド Thread.sleep(milliseconds) を呼び出して、「現在実行中のスレッドを指定されたミリ秒数だけスリープ (一時的に実行を停止) させる」という問題もわかりません。 . これをプログラミングスレッドと呼びますか?

于 2009-06-20T15:20:00.363 に答える
1

あなたのスレッドが例外をスローする可能性があるため、私はマルコムのアプローチに行きます。

[...]スレッドだけをプログラムしたくない[...]

J2ME のプログラミングと、スレッド化されたプログラミングの回避に苦労することになるでしょう。アプリがもう少し複雑になる場合、特にネットワーク接続を使用する場合は、スレッドを使用する必要があります。さらに、一部の操作に 2 ~ 3 秒以上かかる場合は、別のスレッドで実行することを強くお勧めします。おそらく (同時に) 進行中の作業についてユーザーに通知します。

ところで、私が忘れていたこと。私は最近、大学のコース用に J2ME アプリケーションを作成しました。そこで、便利で簡単な方法でスレッドを処理できるようにする「ExecutableTask」と呼ばれるものを作成しました。ソースを見たい場合...残念ながら、Googleのホスティングソリューションのバグにより、Googleリポジトリでオンラインで参照できません(私のプロジェクトの名前が原因です)。

于 2009-06-20T15:26:54.860 に答える
0

Object.wait()、を使用してみてくださいObject.wait(long timeoutValue)。メインのstartApp()/システムスレッドを遅らせることはお勧めしませんが。

于 2009-06-26T21:16:10.467 に答える