   Damn LG phone!!! Please Help.
  I have been working on an App. Very small, just a menu and sprite thingy. If i make current the canvas from the menu, just the menu, without while and try and that kind of stuff... it works perfectly. With the sprite game, the same. But when i create a while with a try it doesnt work on a MG201D cellphone. In my nokia 6670 works without issue and in the emulator too. The code of the main class:import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.GameCanvas;public class MainBase extends MIDlet implements CommandListener{private Display display;public int opcion=99;public boolean isPlay=true;public boolean isOut=true;protected Command salir = new Command("Salir", Command.SCREEN, 2);public void startApp() throws MIDletStateChangeException{display = Display.getDisplay(this);while (isPlay==true){    try//Iniciamos ciclo de juego principal    {MainMenu mainmenu = new MainMenu(this);//Iniciamos Menu Principalmainmenu.start();display.setCurrent(mainmenu);opcion = 666;//Bandera para el soft-keythis.isOut = true;while (isOut){}mainmenu.stop();//Eliminamos el menú principalmainmenu = null;//Ejecutar opcion del Menu seleccionada//opcion 1 - jugarif (this.opcion==0){    //DueloGameAlfaClass Duelo = new GameAlfaClass(this);    Duelo.start();    display.setCurrent(Duelo);   isOut = true;    while (isOut)    {    }   Duelo.stop();    Duelo = null;}    }   catch (Exception ex)    {System.out.println(ex);notifyDestroyed();//linea de código agregada para notificar destrucción    }}}public Display getDisplay(){return display;  }public void pauseApp(){}public void destroyApp(boolean unconditional){}public void commandAction(Command c, Displayable s) {if (c == salir) {destroyApp(false);notifyDestroyed();}}}¿Can anyone help me please?   
  You have the whole lifetime of your program inside startApp(). That's a very big no-no. Methods called by the system have to return as soon as possible.You have to make a Thread to run your main loop.Something like this:public class MainBase extends MIDlet implements CommandListener, Runnable{  public void startApp() throws MIDletStateChangeException  {    display = Display.getDisplay(this);    Thread t = new Thread(this);    t.start()    // and that's it, the method starts a thread and returns    // note: startApp() is also called when the app is resumed    // after a pause, so in the future you will want to change    // this so it detects that and acts accordingly (like not starting    // another thread if one is already running)  }  public void run()  {    // this is where your main loop should go    while (isPlay==true)    {    // etc....  }  // ...}shmoove   ;  Shmoove... I LOVE YOU!!!!!!!!!! HAHAHAHAHAHAHA THANKS MAN!!! THANKS!!!!!!!!!!!! I OW YOU BIG TIME!   ;Quote:Original post by GoguigoShmoove... I LOVE YOU!!!!!!!!!! HAHAHAHAHAHAHA THANKS MAN!!! THANKS!!!!!!!!!!!! I OW YOU BIG TIME!It's good to see people can still experience uninhibited joy these days.   