Ae pessoal.
Estou finalizando uma aplicação e surgiu uma dúvida.
Quando a aplicação estiver em execução e tocar o celular o método pauseApp é chamado, e depois o que acontece quando a ligação é finalizada? a execução volta pra onde?
Alguém já utilizou esse método? Tem algum exemplo que me passar?
quando a aplicaçao volta do estado PAUSADO para o estado ATIVO, o metodo startApp() eh chamado novamente.
Ok.
No caso a aplicação não volta no ponto em que estava?
Fazer ela voltar de onte estava é sua obrigação
Isto mesmo louds…e como tem aplicaçãozinha que não implementa isto direito…nossa !!!
Existem inúmeros exemplos na internet de um startApp mal-implementado…
Por acaso alguém tem algum exemplo bem implementado pra mim dar uma olhada?
private Displayable telaAtual;
private Display display;
private Form formInicial;
protected void startApp ( ) throws MIDletStateChangeException {
// É a primeira vez que passamos por aqui ?
if ( display == null ) {
display = Display.getDisplay(this);
// Instancie o form inicial e blá-blá-blá...
formInicial = new Form("Teste");
telaAtual = formInicial;
}
display.setCurrent(telaAtual);
}
:arrow: 1a. observação:
O exemplo acima mostra que a inicialização da aplicação só ocorre uma vez não importa quantas vezes startApp seja chamada.
:arrow: 2a. observação:
A cada mudança de tela, guarde em telaAtual o objeto displayable que é o atual, desta forma, se uma ligação for recebida e depois startApp for chamado, a aplicação voltará a exibir o form correto.
:arrow: 3a. observação:
Não instancie todos as telas e objetos que a aplicação vá usar logo no início. Instancie a tela principal e a partir desta as outras. Instancie só quando for usar os objetos. Isto além de melhorar o tempo de carga da aplicação, faz uso inteligente da memória, visto que só o que vai ser usado é efetivamente instanciado. Procure saber mais sobre lazy instantiation.
:arrow: 4a. observação:
Se ocorrer algum problema que impeça você de continuar a aplicação, lance uma MIDletStateChangeException para que o AMS possa lidar com isto numa boa… :lol:
eu sempre faço a inicialização no construção e no startApp só seto o diaplay com o principal form
Ok Boone.
Muito obrigado pelas ótimas dicas.
Vou realizar alguns testes.
valeu!
ja resolvi meu probleminha…
[color=#444444][color=violet]ok ok…
:?:Mas e se eu estiver usando Canvas por exemplo? :?: E se eu usar mais de um MIDlet?
:roll:Tô sem saber o que fazer, pois eu uso:
para mudar de tela, sendo que ProximaTela é um Displayable do tipo GameCanvas.
Como eu marco qual é minha tela atual?
Podem me ajudar???
Obrigada antecipamente!!! :oops:
Jennifer [/color][/color]