2009-07-05 12 views
7

Ho bisogno della mia app J2ME per funzionare in background e permetto comunque all'utente di utilizzare il suo cellulare senza problemi. l'app deve ancora elaborare alcuni eventi in background.Come ridurre a icona un'app J2ME?

Vorrei anche consentire all'utente di interrompere l'app se lo desidera.

Come posso realizzare questo?

risposta

-2
MIDlet.notifyPaused() 
+0

Ho bisogno che il midlet continui a funzionare in background (l'interfaccia non viene visualizzata, ridotta al minimo come nel caso di un'applicazione desktop). è a mia conoscenza che l'uso del metodo notifyPaused() interromperà momentaneamente l'esecuzione del midlet. – Attilah

+0

Ma cosa succede se il tuo telefono non chiama questo metodo di callback 'notifyPaused()'? Invece, il tuo telefono potrebbe avere risorse molto basse e decide di chiudere il tuo programma J2ME insieme. – joe

+0

Questo dice al midlet di mettere in pausa i metodi di pausa. – drubin

3

Esecuzione di una midlet in background, ma ancora elaborando non è specificato nello standard J2ME credo. Normalmente nel momento in cui il midlet viene spostato sullo sfondo, è necessario chiamare il metodo in pausa.

Ma non tutti i distributori la implementano in questo modo. Symbian mantiene il tuo programma in esecuzione come se non ci fosse alcun cambiamento quando ridotto a icona. Almeno su N80 e N90.

0

Se l'app è in background, non riceve alcun evento. Quindi non so come possa elaborare qualsiasi evento in background. Se si tratta di un'app J2ME di precaricamento, è possibile lavorare con il produttore del portatile e ottenere determinati attributi di jad per mettere il midlet in background. Non è quindi possibile consentire all'utente di uscire dall'app. Potresti voler pensare a questo caso d'uso.

D'altra parte è possibile eseguire tutte queste applicazioni in Blackberry.

+0

Intendo dire che quando la mia app è in background, manderà ancora occasionalmente sms a un numero predefinito in forse un thread separato. è possibile ? – Attilah

+0

Potrebbe non essere possibile farlo. Tuttavia, è possibile mantenere aperta una connessione HTTP, inviare un messaggio a una pagina Web che invia gli sms a quel numero. – omermuhammed

+0

Ehi @Attilah puoi farlo. Ma questo è possibile in quei dispositivi che supportano il multitasking come Nokia S60. –

1

Questo non è sempre supportato, ma sui portatili che fanno, il comando è: capacità

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

Un dispositivo per eseguire un'applicazione in background dipende dalla sua capacità di multitasking. Pertanto, i dispositivi di tipo PDA più costosi hanno maggiori probabilità di supportare l'esecuzione in background rispetto ai dispositivi a costo inferiore. Perché in fondo: -

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

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

e di primo piano: -.

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

ma essere consapevoli che ogni non dispositivo supporti che caratterizza (funziona su Nokia S60, SonyEricsson, ma non su Nokia S40, Samsung e alcuni altri).

Problemi correlati