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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам