| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 14:57:33
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Estou desenvolvendo uma aplicação em J2ME que por enquanto executa perfeitamente, desde de que seja a primeira vez que é Launch no emulador.
Se por algum motivo (clicar Exit por exemplo em uma de minhas Forms) a aplicação executar um notifyDestroyed e voltar a tela inicial do emulador e eu tentar executar de novo a aplicação, acontece um NullPointerException.
Minha dúvida é..... o que acontece da segunda vez?
Quando acontece um notifyDestroyed a minha aplicação não "morre" no emulador?
E quando eu executo um Launch não há uma recriação de toda minha aplicação?
Já procurei em vários artigos sobre o ciclo de vida de MIDlet mas nao achei resposta para meu problema!
Não posto o código pois ele é muito grande.
Desde já agradeço!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 15:23:43
|
Fox McCloud
JavaEvangelist
![[Avatar]](/images/avatar/8860a4e27cbbe4c63821b429211684a3.jpg)
Membro desde: 29/06/2005 09:29:46
Mensagens: 440
Offline
|
maruero wrote:Estou desenvolvendo uma aplicação em J2ME que por enquanto executa perfeitamente, desde de que seja a primeira vez que é Launch no emulador.
Se por algum motivo (clicar Exit por exemplo em uma de minhas Forms) a aplicação executar um notifyDestroyed e voltar a tela inicial do emulador e eu tentar executar de novo a aplicação, acontece um NullPointerException.
Minha dúvida é..... o que acontece da segunda vez?
Quando acontece um notifyDestroyed a minha aplicação não "morre" no emulador?
E quando eu executo um Launch não há uma recriação de toda minha aplicação?
Já procurei em vários artigos sobre o ciclo de vida de MIDlet mas nao achei resposta para meu problema!
Não posto o código pois ele é muito grande.
Desde já agradeço!
Na verdade o notifyDestroyed() remove a sua aplicação da memória, e o único jeito de reiniciá-la é com uma nova instância (new SuaClasse() [extends MIDlet])... entendeu?
This message was edited 1 time. Last update was at 08/09/2008 15:24:08
|
"Denial is the most predictable of all human responses" - Matrix Architect |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 15:48:42
|
boone
JWizard
![[Avatar]](/images/avatar/6a5dfac4be1502501489fc0f5a24b667.jpg)
Membro desde: 21/09/2003 16:01:35
Mensagens: 2140
Offline
|
maruero wrote:Estou desenvolvendo uma aplicação em J2ME que por enquanto executa perfeitamente, desde de que seja a primeira vez que é Launch no emulador.
Se por algum motivo (clicar Exit por exemplo em uma de minhas Forms) a aplicação executar um notifyDestroyed e voltar a tela inicial do emulador e eu tentar executar de novo a aplicação, acontece um NullPointerException.
Minha dúvida é..... o que acontece da segunda vez?
Quando acontece um notifyDestroyed a minha aplicação não "morre" no emulador?
Morre sim
maruero wrote:
E quando eu executo um Launch não há uma recriação de toda minha aplicação?
Com certeza !
E eu acho q o problema está na lógica no início do ciclo de vida da tua aplicação.É algo nela que está gerando a exception, não o WTK...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 21:05:18
|
maruero
JavaTeenager
![[Avatar]](/images/avatar/b252e54edce965ac4408effd7ce41fb7.jpg)
Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline
|
Boone eu tbm acho que deveria ser minha lógica de inicialização, porém a minha aplicação nunca apresentou o mesmo erro na primeira inicialização, portanto deve haver alguma diferença na re-inicialização para que esse problema ocorra!
ok Fox McCloud, mas o comando "launch" do emulador nao instancia minha aplicação de novo?
É o que eu espero que ele faça! Mas não está parecendo que está instanciando necessáriamente da mesma forma!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/09/2008 09:01:56
|
Fox McCloud
JavaEvangelist
![[Avatar]](/images/avatar/8860a4e27cbbe4c63821b429211684a3.jpg)
Membro desde: 29/06/2005 09:29:46
Mensagens: 440
Offline
|
maruero wrote:Boone eu tbm acho que deveria ser minha lógica de inicialização, porém a minha aplicação nunca apresentou o mesmo erro na primeira inicialização, portanto deve haver alguma diferença na re-inicialização para que esse problema ocorra!
ok Fox McCloud, mas o comando "launch" do emulador nao instancia minha aplicação de novo?
É o que eu espero que ele faça! Mas não está parecendo que está instanciando necessáriamente da mesma forma!
Dê uma olhada no código desse MIDlet de um jogo que eu fiz, pode ajudar a esclarecer alguma coisa...
Não se preocupe com as Threads. Veja que quando eu chamo destroyApp(true), ou seja, restart = true, eu destruo a Thread do jogo e chamo startApp() novamente, reiniciando o programa, sem invocar notifyDestroyed(), então eu não mato a aplicação. Eu só invoco o notifyDestroyed() quando restart = false, que indica que a aplicação vai realmente fechar, sair da memória.
|
"Denial is the most predictable of all human responses" - Matrix Architect |
|
|
 |
|
|