pauseApp

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 :wink:

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… :cry:

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… :smiley:

[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]