2009-07-05 7 views
7

Мне нужно, чтобы мое приложение J2ME работало в фоновом режиме и по-прежнему позволяет пользователю использовать свой мобильный телефон без проблем. приложение все еще нуждается в обработке некоторых событий в фоновом режиме.Как уменьшить приложение J2ME?

Я также хотел бы разрешить пользователю остановить приложение, если захочет.

Как это сделать?

ответ

-2
MIDlet.notifyPaused() 
+0

Мне нужен мидлет, чтобы продолжить работать в фоновом режиме (интерфейс не отображается, сведен к минимуму, как в случае с настольным приложением). я понимаю, что использование метода notifyPaused() мгновенно приостанавливает выполнение мидлета. – Attilah

+0

Но что, если ваш телефон не вызывает этот метод notifyPaused() 'callback? Вместо этого ваш телефон может быть очень низким по ресурсам и решает закрыть вашу программу J2ME вместе – joe

+0

Это говорит о том, что мидлет останавливается, чтобы не обнаружить методы паузы. – drubin

3

Выполнение мидлета в фоновом режиме, но все еще обработка не указана в стандарте j2me, я думаю. В тот момент, когда ваш мидлет перемещается в фоновый режим, вы должны называть приостановленный метод.

Но не каждый поставщик реализует его таким образом. Symbian поддерживает вашу программу, как если бы не было никаких изменений при минимизации. По крайней мере, на N80 и N90.

0

Если приложение находится в фоновом режиме, оно не принимает никаких событий. Поэтому я не знаю, как он может обрабатывать любое событие в фоновом режиме. Если это приложение предварительной загрузки J2ME, вы можете работать с производителем телефона и получать определенные атрибуты jad, чтобы поместить свой мидлет в фоновом режиме. Таким образом, вы не можете позволить пользователю выйти из приложения. Вы можете подумать об этом случае использования.

С другой стороны, вы можете делать все это в приложениях Blackberry.

+0

Я имею в виду, когда мое приложение находится в фоновом режиме, оно все равно иногда отправляет смс на предопределенное число, возможно, в отдельный поток. это возможно ? – Attilah

+0

Возможно, вы не сможете этого сделать. Тем не менее, вы можете сохранить HTTP-соединение открытым, отправить сообщение на веб-страницу, которая отправляет смс на этот номер. – omermuhammed

+0

Эй @ Атиля, ты можешь это сделать. Но это возможно в тех устройствах, которые поддерживают многозадачность, как Nokia S60. –

1

Это не всегда поддерживается, но на телефонах, которые делают, команда: способность

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

Устройства для запуска приложения в фоновом режиме, зависит от его способности многозадачном. Поэтому более дорогие устройства типа PDA более склонны поддерживать фоновое исполнение, чем устройства с более низкой стоимостью. Ибо в фоновом режиме: -

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

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

А на первом плане -.

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

Но Имейте в виду, что каждое устройство не поддерживает, что функции (работы по Nokia s60, SonyEricsson, но не на Nokia s40, Samsung и некоторые другие).

Смежные вопросы