【问题标题】:How to build an alarm clock/reminder function in LWUIT?如何在 LWUIT 中构建闹钟/提醒功能?
【发布时间】:2012-03-21 18:12:57
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: lwuit alarm codenameone


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢谢!您如何抽出时间来回答所有这些问题,真是太棒了。
    • 关于 1) 这实际上是我尝试过的解决方案类型,但我一定是弄错了细节。现在我知道这是正确的道路,我会更加努力;-) 关于 2) 我没有考虑过使用玻璃板。但是,输入被阻止是可以的,所以我猜一个对话框(从 EDT 调用)会是一个好的解决方案。也许由于我对 1) 的问题,它不起作用。我还会看一下聊天演示。关于 3) 我想这是我害怕得到的答案 ;-) 但是服务器解决方案听起来很有趣 - 它是否已经在 lwuit 中可用?
    • 推送通知在 LWUIT 中不可用。即使在 Codename One 中,我们也只会在智能手机上支持它,而不是在 J2ME 设备上,因为如果没有运营商/制造商签名,我们将无法在此类设备上执行任何操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多