Domanda

Domanda veloce ... Utilizzando J2ME (CLDC 1.1, MIDP-2.1) è possibile mettere in pausa il Midlet per un periodo di tempo (non usando i thread) ... Ad esempio:

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

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

Non uso tanto Java e non voglio programmare thread solo per un semplice sonno.

Grazie in anticipo

Riepilogo risposte

La mia mancanza di conoscenza di Java. Gli esempi che ho visto usando Thread.sleep () mi hanno portato a credere che fosse utilizzabile solo in un oggetto thread generato dal Midlet ... non dal midlet stesso. Non volevo dover spooling la logica del midlet in un thread per metterlo in sleep ... Ma ora so che il midlet viene eseguito nel thread predefinito :) Andando a trovare quel libro Java che non ho mai letto perché non l'ho fatto non penso che userei mai la lingua

È stato utile?

Soluzione

Non ho capito se intendevi mettere la midlet in stato di pausa o semplicemente interrompere l'esecuzione per un tempo specificato.

Se è quest'ultimo, in realtà non capisco, perché non vuoi usare Thread, questo non è un grosso problema. Basta inserire tre righe seguenti ovunque sia necessario:

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

Tutto qui, niente di troppo complicato.

Altri suggerimenti

Non conosco la risposta esatta, ma non capisco nemmeno quale sia il problema con la chiamata del metodo statico Thread.sleep (millisecondi) che " Fa in modo che il thread attualmente in esecuzione vada in pausa (interrompa temporaneamente l'esecuzione) per il valore specificato numero di millisecondi " . Chiamate questo thread di programmazione?

Preferirei l'approccio di Malcolm poiché il tuo thread potrebbe generare un'eccezione.

  

[...] e non vuoi programmare thread   solo [...]

Uh, avrai difficoltà a programmare J2ME e cercare di evitare la programmazione thread. Se la tua app diventa solo un po 'più complicata, specialmente quando usi le connessioni di rete dovrai usare i thread. Inoltre, se un'operazione richiede più di 2-3 secondi, è consigliabile eseguirla in un thread separato, eventualmente (contemporaneamente) avvisando l'utente del lavoro in corso.

A proposito, quello che ho dimenticato. Di recente ho scritto una domanda J2ME per un corso universitario. Lì ho costruito quello che ho chiamato " ExecutableTask " che mi ha permesso di gestire i thread in modo comodo e semplice. Se vuoi avere un guarda la fonte ... Purtroppo non puoi sfogliarlo online nel repository di Google a causa ad alcuni bug della soluzione di hosting di Google (il nome del mio progetto è la mia causa).

Puoi provare a usare Object.wait () , Object.wait (long timeoutValue) . Anche se non ti consiglierei di provare a ritardare il thread principale startApp () / system.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top