Frage

Kurze Frage ... Mit J2ME (CLDC 1.1, MIDP-2.1) ist es möglich, die Midlet für einen bestimmten Zeitraum (nicht mit Threads) ... Zum Beispiel schlafen:

public class myMidlet extends MIDlet{
    public void startApp() {
        /* Sleep for 10 seconds */

        /* The answer was: */
        try {
            Thread.sleep(time_ms);
        } catch (Exception e) {}
    }
...

ich Java nicht alle verwenden, die viel und will nicht über Gewinde programmieren, nur für einen einfachen Schlaf.

Vielen Dank im Voraus

Antwort Zusammenfassung

Mein Mangel an Java-Kenntnissen. I Beispiele mit Thread.sleep sah () führte mich durch das Midlet ... nicht die midlet selbst in einem Thread-Objekt gelaicht nur verwendbar war zu glauben. Ich wollte nicht haben, die midlet Logik in einen Thread spulen von ihm weg zu schlafen ... Aber jetzt weiß ich das MIDlet läuft im Standard-Thread :) Going finden, dass Java Buch, das ich nie gelesen, weil ich didn ‚t glaube, ich würde die Sprache verwenden immer

War es hilfreich?

Lösung

Ich verstand nicht, ob Sie midlet in Pausenzustand bedeuten setzen oder nur für bestimmte Zeit zu stoppen Ausführung.

Wenn es Letzteres ist, tatsächlich ich nicht undesrtand, warum Sie nicht wollen, Threads verwenden, ist dies keine große Sache. Sie fügen nur drei folgenden Zeilen, wo immer Sie benötigen:

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

Das ist alles, nichts zu kompliziert zu machen.

Andere Tipps

Ich weiß nicht, die genaue Antwort, aber ich verstehe nicht, auch das, was ist das Problem mit Aufruf statische Methode Thread.sleep (Millisekunden), dass „die Ursachen der aktuell ausgeführten Thread (vorübergehend aufhören Ausführung) für die angegebene Anzahl schlafen von Millisekunden“. Möchten Sie diese Programmierung Threads rufen?

Ich würde für Malcolms Ansatz, da der Thread möglicherweise eine Ausnahme auslösen kann.

  

[...] und will nicht über Gewinde programmieren   nur [...]

äh, haben Sie eine harte Programmierung J2ME Zeit und versuchen threaded Programmierung zu vermeiden. Wenn Ihre App nur ein bisschen komplizierter werden, vor allem, wenn Netzwerkverbindungen finden Sie Threads verwenden. Außerdem, wenn eine Operation mehr als 2-3 Sekunden dauert, ist es sehr ratsam, sie in einem separaten Thread ausgeführt werden, möglicherweise (gleichzeitig), um den Benutzer über die laufenden Arbeiten zu informieren.

Btw, was ich vergessen habe. Ich habe vor kurzem eine J2ME-Anwendung für ein Studium geschrieben. Es habe ich gebaut, was ich „ExecutableTask“ genannt, was mir erlaubt, Fäden in eine bequeme und einfache Art und Weise zu handhaben. Wenn Sie eine suchen rel="nofollow noreferrer"> ... Leider kann man es nicht online blättern im Google-Repository durch bis zu einem gewissen Fehler der Hosting-Lösung von Google (einige Namen meines Projekts meine Ursache dieses).

Sie können versuchen, Object.wait() verwenden, Object.wait(long timeoutValue). Obwohl ich würde Ihnen nicht raten den Haupt startApp zu versuchen und zu verzögern () / System-Thread.

scroll top