Fazendo um sono J2ME Midlet sem fios?
-
06-07-2019 - |
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
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.