如何在LWUIT中构建闹钟/提醒功能



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

  • 如何在不干扰lwuit和EDT的情况下,无论显示什么Form,都保持计时器持续运行?

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

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

对不起,如果答案很明显的话,但我还没能找到一个可靠的解决方案。

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

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

3) 你不能。后台进程执行在任何设备上都不受支持,所有设备都有一个特殊的"基于用例"的后台执行解决方案,要求您以非常特定的方式编写应用程序。Codename One将添加对推送通知的支持,这将允许您从服务器推送警报。接缝一开始是违反直觉的,但如果你考虑到背景过程将占用的电池寿命,那么为什么要这样做就变得非常明显了。

最新更新