2009-07-05 23 views
7

Potrzebuję mojej aplikacji J2ME do działania w tle i nadal pozwalam użytkownikowi na korzystanie z telefonu komórkowego bez problemu. aplikacja musi nadal przetwarzać niektóre zdarzenia w tle.Jak zminimalizować aplikację J2ME?

Chciałbym również umożliwić użytkownikowi zatrzymanie aplikacji, jeśli chce.

Jak mogę to zrobić?

Odpowiedz

-2
MIDlet.notifyPaused() 
+0

Potrzebuję środka, aby kontynuować działanie w tle (interfejs nie jest wyświetlany, zminimalizowane jak w przypadku aplikacji komputerowej). Rozumiem, że użycie metody notifyPaused() spowoduje chwilowe wstrzymanie wykonywania midletu. – Attilah

+0

Ale co, jeśli twój telefon nie wywoła tej metody zwrotnej "notifyPaused()"? Zamiast tego Twój telefon może mieć bardzo mało zasobów i postanawia zamknąć program J2ME razem – joe

+0

To powie Midletowi, aby wstrzymać, a nie wykryć metod pauzy. – drubin

3

Uruchamianie programu pośredniego w tle, ale nadal przetwarzanie nie jest określone w standardzie j2me. Normalnie w momencie, gdy twój środek przesunie się do tła, powinna zostać wywołana pauzowana metoda.

Ale nie każdy sprzedawca realizuje to w ten sposób. Symbian utrzymuje twój program tak, jakby po zminimalizowaniu nie nastąpiła żadna zmiana. Przynajmniej na N80 i N90.

0

Jeśli aplikacja jest w tle, nie otrzymuje żadnych zdarzeń. Tak więc nie wiem, w jaki sposób może przetwarzać dowolne wydarzenie w tle. Jeśli jest to aplikacja do wstępnego ładowania J2ME, możesz pracować z producentem słuchawki i uzyskać pewne atrybuty jadu, aby umieścić swój środek pomocniczy w tle. Dlatego nie możesz pozwolić użytkownikowi na zamknięcie aplikacji. Możesz pomyśleć o tym przypadku użycia.

Z drugiej strony można zrobić wszystko w aplikacjach Blackberry.

+0

Mam na myśli, że gdy moja aplikacja jest w tle, będzie od czasu do czasu wysyłać wiadomości SMS na wcześniej zdefiniowaną liczbę w osobnym wątku. czy to jest możliwe ? – Attilah

+0

Możesz nie być w stanie tego zrobić. Można jednak pozostawić połączenie HTTP otwarte, wysłać wiadomość do strony internetowej, która wysyła sms na ten numer. – omermuhammed

+0

Hej @Attila, możesz to zrobić. Ale jest to możliwe w urządzeniach obsługujących wielozadaniowość, takich jak Nokia S60. –

1

To nie zawsze jest obsługiwany, ale na telefonach, które wykonują polecenie brzmi: zdolność

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

urządzenie do uruchamiania aplikacji w tle zależy od jej zdolności do wielu zadań. Dlatego też droższe urządzenia typu PDA są bardziej skłonne do obsługi wykonywania w tle niż tańszych urządzeń. W tle: -

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

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

i nowej wiedzy: -.

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

ale należy pamiętać, że każdy nie urządzenie obsługuje że funkcje (działa na Nokia S60, SonyEricsson, ale nie na Nokia S40, Samsung, jacyś inni).