1

我想在 Lwuit 应用程序中实现一个闹钟/提醒功能,用户可以在其中设置闹钟时间,此时会弹出一个提醒对话框并发出警报声。但是,我不确定这种方法。因此,我们将不胜感激对以下任何问题的帮助:

  • 无论显示什么形式,如何保持计时器持续运行,例如不干扰 lwit 和 EDT?

  • 触发机制会弹出提醒对话框的正确方法是什么?这可能随时发生,无论当前显示什么表单,并且不应干扰正在进行的用户操作,因此当提醒对话框关闭时,用户可以在提醒弹出时继续进行。

  • 最后,当应用程序关闭或不在前台运行时,如何保持计时器运行?随着新的和现有的 CodenameOne 的出现,我显然希望该解决方案同时适用于 J2ME、iOS 和 Android。

抱歉,如果答案很明显,但我无法找到可靠的工作解决方案。

4

1 回答 1

2

1)您可以将 java.util.Timer 用于通用计时器,它的回调将在 EDT 之外发生,因此为了使用 LWUIT,您只需使用回调到 EDTDisplay.getInstance().callSerially()并将您的代码包含在Runnable回调中。

2)为了不以不显眼的方式阻止输入和显示,您可以使用玻璃窗格在屏幕顶部显示半透明元素。它不会以任何方式阻止输入。LWUIT 聊天演示应用程序中有一个示例。

3)你不能。任何设备都不真正支持后台进程执行,所有设备都有一个特殊的“基于用例”的后台执行解决方案,这需要您以非常特定的方式编写应用程序。代号一将添加对推送通知的支持,这将允许您从服务器推送警报。接缝起初与直觉相反,但如果您考虑后台进程将占用的电池寿命,那么这样做的原因就很明显了。

于 2012-03-04T06:28:01.017 回答