Pregunta

Pregunta rápida ... Usando J2ME (CLDC 1.1, MIDP-2.1) es posible dormir el Midlet por un período de tiempo (sin usar hilos) ... Por ejemplo:

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

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

No uso mucho Java, y no quiero programar hilos solo para dormir.

Gracias de antemano

Resumen de respuestas

Mi falta de conocimiento de Java. Los ejemplos que vi usando Thread.sleep () me llevaron a creer que solo se podía usar en un objeto de hilo generado por el Midlet ... no el midlet en sí. No quería tener que poner en cola la lógica de midlet en un hilo para dormirlo ... Pero ahora sé que el midlet se ejecuta en el hilo predeterminado :) Voy a encontrar ese libro de Java que nunca leí porque no lo hice Creo que nunca usaría el idioma

¿Fue útil?

Solución

No entendí si te refieres a poner midlet en estado de pausa o simplemente detener la ejecución por un tiempo específico.

Si es lo último, en realidad no entiendo, por qué no quieres usar hilos, esto no es gran cosa. Simplemente inserte tres líneas siguientes donde lo necesite:

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

Eso es todo, nada demasiado complicado.

Otros consejos

No sé la respuesta exacta, pero tampoco entiendo cuál es el problema de llamar al método estático Thread.sleep (milisegundos) que " Hace que el hilo que se está ejecutando actualmente se suspenda (cese temporal de la ejecución) para el especificado número de milisegundos " . ¿Llamas a esto hilos de programación?

Optaría por el enfoque de Malcolm, ya que su hilo posiblemente podría arrojar una excepción.

  

[...] y no quiere programar hilos   solo [...]

Uh, tendrá dificultades para programar J2ME e intentar evitar la programación enhebrada. Si su aplicación se vuelve un poco más complicada, especialmente cuando usa conexiones de red, tendrá que usar hilos. Además, si alguna operación lleva más de 2-3 segundos, es muy recomendable ejecutarla en un hilo separado, posiblemente (al mismo tiempo) notificando al usuario sobre el trabajo en curso.

Por cierto, lo que olvidé. Recientemente escribí una solicitud J2ME para un curso universitario. Allí he construido lo que llamé " ExecutableTask " lo que me permitió manejar hilos de una manera conveniente y fácil. Si desea tener un mire la fuente ... Desafortunadamente no puede navegar en línea en el repositorio de Google debido a algún error de la solución de alojamiento de Google (algún nombre de mi proyecto puede causar esto).

Puede intentar usar Object.wait () , Object.wait (long timeoutValue) . Aunque no le recomendaría que intente retrasar el hilo principal de startApp () / system.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top