2008-12-10 9 views
10

He leído un montón de comentarios mencionar de pasada que el modelo de subprocesos de BlackBerry se desvía del estándar de Java y puede causar problemas, pero ninguna cantidad de google me ha iluminado sobre lo que esto significa exactamente.modelo de subprocesos de BlackBerry

He estado desarrollando una aplicación de negocios bastante grande para BlackBerry y, aunque realmente no tengo ninguna experiencia previa con aplicaciones de subprocesos múltiples de Java, no he encontrado ningún problema que hayamos podido culpar a enhebrar, que no sea lo que nos causamos a nosotros mismos.

Puede alguien describir exactamente cómo el modelo de subprocesos de BlackBerry es diferente, y la forma en que como desarrollador debería tener esto en cuenta? Obviamente, cualquier enlace sobre el tema también sería genial.

Respuesta

0

El único problema que ocurre es discutido en la respuesta a another stackoverflow question.

+0

Eso es más de un tema genérico de roscado eso es relevante para cualquier plataforma, me refiero a la aplicación específica de procesos en el BlackBerry JVM. – roryf

2

dos peculiaridades que he encontrado en los foros de mora:

  1. vector no está seguro para subprocesos.
  2. Si va a crear una aplicación BlackBerry nativo CLDC, una estática no es necesariamente un producto único sobre la máquina virtual.
16

1.UI operaciones de la interfaz de usuario siempre necesidad de correr en el hilo de interfaz de usuario. Para llevar a cabo tales funciones como LabelField.setText("foo"); que tiene que hacer:

UiApplication.getUiApplication().invokeLater(new Runnable(){ 
    public void run(){ 
    myLabelField.setText("foo"); 
    myLabelField.setDirty(true); 
    } 
}); 

Bastante fácil, ¿eh?

2.Network el funcionamiento de la red debe Nunca de ejecución dentro del hilo de interfaz de usuario. Para hacer tales cosas, haga:

new Thread(){ 
    public void run(){ 
    HttpConnection hc = 
      (HttpConnection)Connector.open("http://www.stackoverflow.com"); 
    } 
}.start(); 

Estos dos principios principales son muy importantes. Siempre debe tener en cuenta en qué hilo está operando.

1

Las diferencias no están en el modelo Threading sino en la forma en que las usa y como dijo The initial post, No puede usar un hilo ui para conexiones de red o no puede usar una conexión de red para actualizar el ui.

Hay muchas diferencias en esta materia entre lo que llamó un escritorio java java moras ... me creen!

Cuestiones relacionadas