É realmente necessário criar um método construtor para um MIDlet, levando-se em conta que existe o método startApp() ? Tem algum efeito no desempenho codificar instruções iniciais no startApp() ou no construtor da Classe?
startApp e construtor do MIDlet
4 Respostas
O único problema de se utilizar o startApp inicializar alguma coisa é que o startApp() não é chamado uma vez só como o construtor,ele é chamado no inicio e de depois após cada pauseApp() embora seje bem simples contornar, eu acho que inicializações devam ficar no construtor.
Se o startApp() é chamado após cada pauseApp() então temos um pequeno problema.
Imagine um jogo onde cada tela diferente represente uma fase. Supondo que no startApp() esteja o menu do jogo, após cada pauseApp(), não importa se o jogador está na trigésima fase, ele voltaria para a tela de menu.
Bem é como eu comentei é muito simples evitar isso.
Display display = null;
public void startApp() throws MIDletStateChangeException {
if (display == null) {
display = Display.getDisplay(this);
}else{
//Sabe que é volta de pauseApp
}
e também como eu falei eu pessoalmente acho melhor por inicializações no construtor.
Se o startApp() é chamado após cada pauseApp() então temos um pequeno problema.
Imagine um jogo onde cada tela diferente represente uma fase. Supondo que no startApp() esteja o menu do jogo, após cada pauseApp(), não importa se o jogador está na trigésima fase, ele voltaria para a tela de menu.
Basta que no método pauseApp vc “guarde” qual fase que está.
E no staretApp vc sempre abra uma “Current Screen”.
Essa current screen seria uma referencia a tela atual do aplicativo.
Isso deve ser implementado por vc.
Até mais!