Question

Question rapide ... En utilisant J2ME (CLDC 1.1, MIDP-2.1), est-il possible de mettre le Midlet en veille pendant un certain temps (sans utiliser de threads) ... Par exemple:

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

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

Je n'utilise pas beaucoup Java et je ne souhaite pas programmer des threads uniquement pour un simple sommeil.

Merci d'avance

Résumé de la réponse

Mon manque de connaissances en Java. Les exemples que j'ai vus en utilisant Thread.sleep () m'ont amené à penser qu'il n'était utilisable que dans un objet fil généré par le Midlet ... pas le midlet lui-même. Je ne voulais pas avoir à spooler la logique du midlet dans un fil pour le mettre en sommeil ... Mais maintenant, je sais que le midlet s'exécute dans le fil par défaut :) Je vais trouver ce livre Java que je n'ai jamais lu parce que ne pense pas que j'utiliserais la langue jamais

Était-ce utile?

La solution

Je ne comprenais pas si vous vouliez dire que midlet était en pause ou que vous vouliez simplement arrêter l'exécution pendant une durée déterminée.

Si c'est le dernier cas, en fait, je ne comprends pas pourquoi vous ne voulez pas utiliser Threads, ce n'est pas grave. Vous insérez simplement trois lignes suivantes, où vous en avez besoin:

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

C'est tout, rien de compliqué.

Autres conseils

Je ne connais pas la réponse exacte, mais je ne comprends pas non plus quel est le problème en appelant la méthode statique Thread.sleep (millisecondes) qui "empêche le thread en cours d'exécution de se mettre en veille (arrête temporairement l'exécution) pour le programme spécifié." nombre de millisecondes " . Est-ce que vous appelez cela des fils de programmation?

Je choisirais l'approche de Malcolm car votre fil de discussion peut éventuellement renvoyer une exception.

  

[...] et vous ne voulez pas programmer de threads   juste [...]

Euh, vous aurez du mal à programmer J2ME et à éviter la programmation par thread. Si votre application devient un peu plus compliquée, surtout lorsque vous utilisez des connexions réseau, vous devrez utiliser des threads. De plus, si une opération prend plus de 2-3 secondes, il est vivement recommandé de l'exécuter dans un thread séparé, éventuellement (simultanément) en avertissant l'utilisateur du travail en cours.

Btw, ce que j'ai oublié. J'ai récemment écrit une application J2ME pour un cours universitaire. Là, j'ai construit ce que j'ai appelé "ExecutableTask". ce qui m'a permis de gérer les threads de manière pratique et simple. Si vous souhaitez avoir un regarder la source ... vous ne pourrez malheureusement pas le parcourir en ligne dans le référentiel Google à cause à un bug de la solution d'hébergement de Google (un nom de mon projet pourrait en être la cause)

Vous pouvez utiliser Object.wait () , Object.wait (long timeoutValue) . Bien que je ne vous conseille pas d'essayer de retarder le thread principal startApp () / system.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top