blackberry - La aplicación J2ME no funciona en Nokia n81 y Samsung f330, etc., pero en trabajos en BB y Nokia n97, etc.
mobile java-me (1)
No debería hacer cosas como platformRequest
en un método de ciclo de vida como startApp()
. Es una operación asincrónica, necesita pedir permiso al usuario, etc. Esto no debe hacerse en la cadena del sistema.
Los métodos invocados en el hilo del sistema deben regresar lo más cerca posible de inmediato, ya que es probable que el hilo esté a cargo de hacer otras cosas como redibujar la pantalla o procesar la entrada del usuario. platformRequest
es una operación de bloqueo y hará que su dispositivo se congele.
Algunos dispositivos pueden manejar esto mejor que otros y es por eso que ves la discrepancia.
Inicia un nuevo hilo para hacer la platformRequest
y todo debería estar bien; puede comenzar su nuevo hilo prácticamente en cualquier lugar.
Hice una pequeña aplicación en J2ME , acaba de abrir el navegador con un enlace de destino.
Sin embargo, funciona en algunos modelos de teléfonos y en otros no.
Funciona en:
- BlackBerry 9000.
- Nokia n97.
- BlackBerry Javeline 8900
Id no funciona en:
- Nokia e71: instala la aplicación, pero el navegador no se abre.
- Nokia n81: Idem.
- Samsung f330: no puede instalar la aplicación.
- BB 9800: instala OK. Navegador con la página OK. Al cerrar la aplicación, se reinicia. (Tal vez usar algún tipo de "acabado ()" en JavaME ayudaría?)
No sé por qué funciona en algunos teléfonos y en otros no. En teoría, debería funcionar con todos los teléfonos con soporte de J2ME ( JavaME ).
EDITAR : Aquí está el código relevante.
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
boolean mustExit = false;
try {
/**
* mustExit - Boolean
*
* Some MIDP platforms are more restricted than others.
* For example, some don''t support concurrent processing,
* so the MIDlet must exit before the platform can honor
* a service request.
*
* If <true> destroy the app. So the browser
* can start.
*/
mustExit = platformRequest("http://www.stackoverflow.com");
} catch (ConnectionNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(mustExit){
destroyApp(true);
notifyDestroyed();
}
//Display.getDisplay(this).setCurrent(timeAlert);
}