Как остановить выполнение мидлета из j2me? - PullRequest
2 голосов
/ 04 декабря 2010

Как остановить выполнение мидлета из j2me на определенное время?

1 Ответ

3 голосов
/ 05 декабря 2010

Жизненный цикл мидлета полностью контролируется программным обеспечением AMS, установленным на телефоне.Таким образом, любая программа, связанная с выполнением мидлета, должна запрашиваться из программного обеспечения AMS.Для конкретной ситуации, которую вы описываете, поддерживается Push Registry.

Вы можете использовать registerAlarm, указав полное имя имя класса мидлета и время (в миллисекундах), в которое приложениедолжен быть начат снова.Обратите внимание, что это абсолютное время .Это работает следующим образом:

  1. В вашем приложении зарегистрируйте тревогу со временем, когда приложение должно проснуться.Например, вы хотите, чтобы приложение запускалось через 10 минут.Тогда аргументы должны быть com.yourcompany.app.AppMIdlet, Date (). GetTime () + 600000.
  2. Теперь выйдите из приложения.
  3. Выпейте кружку пива, пока вы ждетена 10 минут
  4. Бум!Приложение запускается через 10 минут.
  5. Прибыль!

Примечание. Это защищенный API, и вполне возможно, что приложение ДОЛЖНО быть подписано для его использования.Большинство телефонов позволят с подсказкой безопасности;Однако мало кто этого не делает.Это зависит от политики, установленной производителем и оператором.Так что ловите исключения безопасности правильно;в противном случае вы будете озадачены тем, что приложение молча выйдет из строя.

Ссылки:

  1. [Аварийный сигнал реестра реестра, спецификации API] [1]
  2. Очень подробный трактат Push Registry

    [1]: http://download.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/io/PushRegistry.html#registerAlarm(java.lang.String, long)

...