BlackBerry - TimerTask是否在后台运行?

时间:2009-12-06 20:39:13

标签: multithreading blackberry process timer background-application

即使退出我的应用程序并进入主屏幕或浏览其他应用程序,TimerTask也能正常工作吗? 我已经阅读了论坛并找出了线程类的简单机制就是在BB中使用TimerTask。我想让线程一直运行,即使我的应用程序没有启动(第一次之后),所以当一个特定的间隔到来时,我可以从应用程序显示我的对话框。 我尝试了以下内容:(我有这个代码,而不是在MainScreenClass而不是第一个推送屏幕类)

 try {
  timer = new Timer();
  // start after 1 second, repeat every 5 second
  // timer.schedule(new ClickTask(), 0, 5000); // seconds*1000
  timer.scheduleAtFixedRate(new ClickTask(), 0, 5000);
 } catch (Exception e) {
  // do nothing
 }

 private class ClickTask extends TimerTask {
  public void run() {
   System.out.println("Test Printing..");
   // Screen screen = new Dialog(Dialog.D_OK, 
   // "Look out!!!", Dialog.OK,
   // Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
   // Manager.VERTICAL_SCROLL);
  }
 }

但它只在我的应用程序启动时运行计时器。如果我退出我的应用程序并进入设备主屏幕,似乎是日志不打印(即计时器未运行)。我的代码是对的吗?这是在后台运行计时器作为线程的方法吗? 注意:我正在9530模拟器上进行测试。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

TimerTask适用于您的应用程序实际运行的时间。

请查看PushRegistry.registerAlarm(),以便在间隔后启动您的应用程序。