2

如何在特定时间内停止执行 j2me 的 midlet?

4

1 回答 1

3

MIDlet 的生命周期完全由手机上的 AMS 软件控制。因此,必须从 AMS 软件请求与执行 MIDlet 相关的任何设施。对于您描述的特定情况,推送注册表支持。

您可以通过指定 MIDlet 的完全限定类名和必须再次启动应用程序的时间(以毫秒为单位)来使用 registerAlarm。请注意,这是绝对时间。它的工作方式如下:

  1. 在您的应用程序中,使用应用程序需要唤醒的时间注册闹钟。例如,您希望应用程序在 10 分钟后启动。那么参数必须是 com.yourcompany.app.AppMIdlet, Date().getTime()+ 600000。
  2. 现在,退出应用程序。
  3. 喝一杯啤酒,等待 10 分钟
  4. 繁荣!应用程序在 10 分钟后启动。
  5. 利润!

注意:这是一个受保护的 API,可能必须对应用程序进行签名才能使用它。大多数手机都允许安全提示;但是很少有没有。这取决于制造商和运营商制定的政策。因此,正确捕获安全异常;否则你会感到困惑,应用程序会默默地失败。

参考:

  1. [Push Registry的注册告警,API规范][1]
  2. Push Registry 的一篇非常透彻的论文

    [1]: http: //download.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/io/PushRegistry.html#registerAlarm (java.lang.String , long)

于 2010-12-05T07:56:26.257 回答