【问题标题】:How to make j2me app which run in background如何制作在后台运行的 j2me 应用程序
【发布时间】:2013-03-15 17:45:16
【问题描述】:

我正在 j2me 中开发 Loaction Alarm 应用程序。我的应用程序的目的是在用户到达他/她设置提醒的所需位置时提醒用户。我希望这必须在用户关闭应用程序时发生。为此,我必须在后台运行我的代码,不断检查来自 GPS 的坐标是否与提醒中设置的坐标相同。一旦条件成立,应用程序将自动提示带有音乐音调的地图(显示在画布上)和警报框或表单(显示提醒文本)。 我该怎么做????有没有人在此之前做过这个,请尽快分享您的经验或代码....

注意:在应用程序中,用户最多可以设置5个提醒,这样我就必须连续同时检查5个提醒坐标。

而且我还希望当用户关闭应用程序时,不包括后台运行代码,其他表单和控件应该释放他们正在使用的资源(即应该被删除)并且应该在用户启动应用程序时再次创建。

【问题讨论】:

    标签: java-me background gps


    【解决方案1】:

    可以使用 PushRegistry 自动启动 JavaME 应用程序。但是 PushRegistry 的方法有限。例如,您可以通过短信或闹钟启动应用程序。但是 PushRegistry 中没有 GPS 位置自动启动功能,因此您不能使用 PushRegistry 作为解决方案。 换句话说:一旦您的 JavaME 关闭,它就会关闭,并且当 GPS 数据与某个位置匹配时,您无法再次自动启动它。

    因此,您必须让应用在后台运行,并让它获取 GPS 数据。您可以创建一个“隐藏”按钮,而不是“关闭”按钮。你像这样隐藏你的应用程序:

    Display.setCurrent(null);
    

    (它(就像 JavaME 中的其他任何东西一样)并不适用于所有设备)。 当 GPS 数据与某个位置匹配时,您就会这样做

    Display.setCurrent(yourDisplayable);
    

    然后你显示警报。

    【讨论】:

    • destroyApp(true) 和 notifyDestroyed() 的确切 n 详细用途是什么??????
    • destroyApp() 是用户退出应用时设备调用自身的方法。您还应该自己使用它,以便在用户单击退出按钮时手动调用。 notifyDestroyed() 告诉设备,您的应用程序现在已被销毁。由于应用程序无论如何都会退出,因此实际上没有必要调用,但包含它是一种很好的做法。如果用户真的想退出应用程序,很遗憾你无能为力。您必须告知用户他需要让应用程序在后台运行。
    【解决方案2】:

    另请注意,如果您的目标是诺基亚 S40 手机,则无法运行后台应用程序,因为它不是多任务操作系统。看看下面,看看是否有帮助: http://www.dailyteck.com/how-can-be-run-multitasking-or-minimizing-application-in-nokia-s40-mobile-phones/

    【讨论】:

    • Nokia-MIDlet-auto-start: no 究竟是做什么的??
    • 设备重启时告诉手机是否需要启动midlet....如果不是,则设备启动时不会重启midlet
    • 在链接中,他们提到 Nokia-MIDlet 为什么不只是 MIDlet.... 因为我使用的是 NetBeans7.2,并且在示例中我认为他们展示了诺基亚 IDE 的编码。这就是他们说 Nokia-MIDlet 的原因。而在 NetBeans 中,没有特定的 MIDlet 被命名为 Nokia-MIDlet。所以我必须根据链接只输入 MIDlet-auto-start:no 或整个提及代码...
    • Nokia-MIDlet 是仅适用于诺基亚设备的特殊属性。您是上述任何一种,但如果您只针对诺基亚设备,那么我认为您会选择诺基亚 MIDlet 设备。如果另一个“MIDlet-auto-start:no”满足您的需求,那么最好使用这个,因为它是通用的。
    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    相关资源
    最近更新 更多