2012-06-27 33 views
6

Estoy intentando crear una aplicación en segundo plano que se ejecutará al iniciar el sistema. Cuando lo ejecuto manualmente (desde la cinta de opciones), aparece la pantalla, pero cuando ejecuto la aplicación después de convertirla en una aplicación de inicio (opción Ejecución automática al iniciar en el descriptor), no aparece nada en la pantalla. Estoy intentando el siguiente código;BlackBerry App: La pantalla no aparece en el modo de ejecución automática

public class AppClass extends UiApplication { 

    public static void main(String[] args) { 
     AppClass theApp = new AppClass(); 
     theApp.enterEventDispatcher(); 
    } 

    public AppClass() { 
     pushScreen(new AppScreen()); 
    } 
} 

Y esta es la clase de pantalla;

public final class AppScreen extends MainScreen { 

    private LabelField label; 

    public AppScreen() { 
     setTitle("AppTitle"); 

     label = new LabelField(); 
     label.setText("Ready."); 

     add(label); 
    } 
} 

Estoy esperando que su interfaz de usuario de una aplicación por lo que su pantalla debe ser visible, no importa si es de ejecución automática en el arranque o ejecutar manualmente. Si necesito hacer algo para que funcione como se espera, por favor guíame al respecto, soy nuevo en el desarrollo de BlackBerry. Estoy desarrollando en el siguiente entorno;

  • BlackBerry JDE Plug-in de Eclipse 1.5.0
  • BlackBerry OS 4,5

Respuesta

2

llamada getApplication().requestForeground(); desde el constructor de la clase AppScreen para que su pantalla será visible.

public final class AppScreen extends MainScreen { 

    private LabelField label; 

    public AppScreen() { 
     setTitle("AppTitle"); 

     label = new LabelField(); 
     label.setText("Ready."); 

     add(label); 

     getApplication().requestForeground(); 
    } 
} 

Una vez que la aplicación se está ejecutando en segundo plano, tenemos que llevarlo a primer plano para mostrar explícitamente elemento de interfaz de usuario y eso es lo que estamos haciendo aquí.

5

Auto iniciar las aplicaciones se ejecutan antes que el sistema operativo ha terminado de arrancar así que no hay ningún soporte para la interfaz de usuario. Sospecho que su aplicación se está iniciando pero falla en alguna llamada de IU. La forma documentada de escribir una aplicación que se ejecutará automáticamente y se ejecutará desde la pantalla de inicio es proporcionar un punto de entrada alternativo para la ejecución automática con argumentos que indiquen al programa que se ha ejecutado automáticamente. Luego use la API para esperar hasta que el sistema operativo esté listo para las aplicaciones de interfaz de usuario.

public class AppClass extends UiApplication { 
    public static void main(String[] args) { 

     if (args.length > 0 && args[0].equals("auto-run")) { 
      // auto start, wait for OS 
      while (ApplicationManager.getApplicationManager().inStartup()) { 
       Thread.sleep(10000); 
      } 

      /* 
      ** Do auto-run UI stuff here 
      */ 
     } else { 
      AppClass theApp = new AppClass(); 
      theApp.enterEventDispatcher(); 
     } 
    } 

    public AppClass() { 
     pushScreen(new AppScreen()); 
    } 
} 
+0

Gracias señor. Déjame intentarlo. – Mudassir

Cuestiones relacionadas