2009-07-05 7 views
7

Necesito que mi aplicación J2ME se ejecute en segundo plano y aún así permitir que el usuario use su móvil sin problemas. la aplicación aún necesita procesar algunos eventos en segundo plano.¿Cómo minimizo una aplicación J2ME?

También me gustaría permitirle al usuario detener la aplicación si así lo desea.

¿Cómo puedo lograr esto?

Respuesta

-2
MIDlet.notifyPaused() 
+0

Necesito que el midlet continúe ejecutándose en segundo plano (interfaz que no se muestra, minimizada como en el caso de la aplicación de escritorio). Entiendo que usar el método notifyPaused() pausará momentáneamente la ejecución del midlet. – Attilah

+0

¿Pero qué sucede si su teléfono no llama a este método de devolución de llamada 'notifyPaused()'? En su lugar, su teléfono puede tener muy pocos recursos y decide cerrar su programa J2ME todos juntos – joe

+0

Esto le dice al midlet que pause no detectar los métodos de pausa. – drubin

3

ejecución de una MIDlet en el fondo, pero aún procesamiento no está especificado en el estándar J2ME, creo. Normalmente, en el momento en que su midlet se mueve a segundo plano, debe llamarse al método pausado.

Pero no todos los proveedores lo implementan de esa manera. Symbian mantiene su programa en ejecución como si no hubiera cambios cuando se minimiza. Al menos en el N80 y N90.

0

Si su aplicación está en segundo plano, entonces no recibe ningún evento. Así que no sé cómo puede procesar cualquier evento en segundo plano. Si es una aplicación J2ME de precarga, entonces puedes trabajar con el fabricante del teléfono y obtener ciertos atributos de jad para poner tu midlet en segundo plano. Por lo tanto, no puede permitir que el usuario salga de la aplicación. Es posible que desee pensar en este caso de uso.

Por otro lado, puede hacer todo esto en las aplicaciones de Blackberry.

+0

me refiero a cuando mi aplicación está en segundo plano, de todos modos enviará sms de vez en cuando a un número predefinido, tal vez en un hilo separado. es eso posible ? – Attilah

+0

Es posible que no pueda hacer eso. Sin embargo, puede mantener abierta una conexión HTTP, enviar un mensaje a una página web que envíe el sms a ese número. – omermuhammed

+0

Hola @Attilah puedes hacer esto. Pero esto es posible en los dispositivos que admiten tareas múltiples como Nokia S60. –

1

Esto no siempre es compatible, pero en los terminales que lo hacen, el comando es: la capacidad

Display.getDisplay(theMidlet).setCurrent(null); 
3

Un dispositivo de ejecutar una aplicación en segundo plano depende de su capacidad de multitarea. Por lo tanto, es más probable que los dispositivos tipo PDA más caros admitan la ejecución en segundo plano que los dispositivos de menor costo. En el fondo: -

private Display display = Display.getDisplay(this); 
private Displayable previousDisplayable; 

public void toBack() { 
previousDisplayable = display.getCurrent(); 
display.setCurrent(null); 
} 

y el primer plano: -.

public void toFront() { 
display.setCurrent(previousDisplayable); 
} 

pero tenga en cuenta que no todos los dispositivos de apoyo que ofrece (funciona en Nokia S60, SonyEricsson, pero no en Nokia S40, Samsung y algunos otros).