Как встроить функцию будильника / напоминания в LWUIT? - PullRequest
1 голос
/ 03 марта 2012

Я хотел бы реализовать функцию будильника / напоминания в приложении Lwuit, где пользователь может установить время будильника, и в это время всплывет диалоговое окно напоминания со звуком будильника. Однако я не уверен в подходе. Так что помощь по любому из следующих вопросов будет принята с благодарностью:

  • Как поддерживать работу таймера независимо от того, какая форма отображается, например, не мешая lwuit и EDT?

  • Как правильно реализовать механизм запуска, который заставит всплывающее диалоговое окно напоминания? Это может произойти в любое время, независимо от того, какая форма отображается в данный момент и не должна мешать текущей пользовательской операции, поэтому, когда диалоговое окно напоминания закрыто, пользователь может продолжить работу, где бы он ни находился, когда всплывающее напоминание всплыло.

  • И, наконец, когда приложение закрыто или не работает на переднем плане, как я могу сохранить работу таймера? С появлением нового и интересного CodenameOne, я бы хотел, чтобы решение работало на J2ME, iOS и Android.

Извините, если ответы очевидны, но я не смог найти надежного рабочего решения.

1 Ответ

2 голосов
/ 04 марта 2012

1) Вы можете использовать java.util.Timer для универсального таймера, его обратные вызовы будут происходить вне EDT, поэтому для использования LWUIT вам просто нужно будет выполнить обратный вызов в EDT, используя Display.getInstance().callSerially() и иметь свой код в пределах Runnable обратный вызов.

2) Чтобы не блокировать ввод и отображать ненавязчивым образом, вы можете использовать стекло, чтобы просто показать полупрозрачный элемент в верхней части экрана. Это никак не заблокирует ввод. Пример этого есть в демонстрационном приложении LWUIT Chat.

3) Вы не можете. Фоновое выполнение процесса на самом деле не поддерживается ни на одном устройстве, все устройства имеют специальное «основанное на сценариях» решение для фонового выполнения, которое требует от вас написания приложений очень специфическим способом. Codename One добавит поддержку push-уведомлений, которые позволят вам отправить тревогу с вашего сервера. Поначалу швы кажутся интуитивно понятными, но если учесть, сколько времени автономной работы потребляют фоновые процессы, становится совершенно очевидно, почему это было сделано.

...