Pergunta

Pergunta rápida ... Usando J2ME (CLDC 1.1, MIDP-2.1) é possível dormir o Midlet por um período de tempo (não usando threads) ... Por exemplo:

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

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

Não uso Java tanto assim, e não quero tópicos do programa apenas para um sono simples.

Obrigado antecipadamente

Resposta Resumo

minha falta de conhecimento Java. Exemplos que vi usando Thread.sleep () me levou a acreditar que era apenas utilizável em um objeto segmento gerado pelo Midlet ... não o próprio midlet. Eu não quero ter que spool off a lógica midlet em um thread para dormir ... Mas agora eu sei que as corridas de MIDlet no segmento padrão :) Indo para encontrar aquele livro Java Eu nunca li porque eu não 't acho que eu iria usar a linguagem nunca

Foi útil?

Solução

Eu não entendo se você quer dizer colocar midlet em estado de pausa ou uma simples paragem de execução para o período especificado.

Se ele é o último, na verdade eu não saber entende, por que você não quer usar Threads, isso não é grande coisa. Você acabou de inserir três seguintes linhas onde precisar:

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

Isso é tudo, nada muito complicando.

Outras dicas

Eu não sei a resposta exata, mas eu também não entendo qual é o problema com a chamada método estático Thread.sleep (milissegundos) que "Faz com que o thread atualmente em execução no sono (interrupção temporariamente a execução) para o número especificado de milissegundos". Vocês chamam isso de tópicos de programação?

Gostaria de ir para a abordagem de Malcolm desde seu segmento pode, eventualmente, lançar uma exceção.

[...] e não quero tópicos do programa apenas [...]

Uh, você terá um tempo difícil programação J2ME e tentando evitar a programação de rosca. Se o seu aplicativo se torna um pouco mais complicado, especialmente quando se utiliza conexões de rede você vai ter que usar threads. Além disso, se alguma operação leva mais do que 2-3 segundos é altamente aconselhável para executá-lo em um segmento separado, possivelmente (contemporaneamente) notificando o usuário sobre os trabalhos em curso.

Btw, o que eu esqueci. Eu escrevi recentemente um aplicativo J2ME para um curso universitário. Não eu construí o que chamei de "ExecutableTask" que me permitiu lidar com tópicos de uma forma fácil e conveniente. Se você quiser ter um href="http://aroundj2me.googlecode.com" rel="nofollow olhar no fonte ... Infelizmente você não pode navegar-lo online no repositório Google devido a algum bug de solução de hospedagem do Google (algum nome do meu projeto a minha causa disso).

Você pode tentar usar Object.wait(), Object.wait(long timeoutValue). Embora eu não o aconselharia a tentar atrasar o principal startApp () / thread do sistema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top