multithreading - BlackBerry-TimerTask是否在后台运行?

标签 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 Simulator上对此进行测试。

感谢您的帮助。

最佳答案

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

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

关于multithreading - BlackBerry-TimerTask是否在后台运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856526/

相关文章:

blackberry - Blackberry WebWorks 中包含哪个版本的 WebKit?

java - 有关套接字和黑莓的帮助

iphone - 针对多个移动平台的最具成本效益的方式

delphi - 检测在另一个进程中按下的键

windows - 为什么会有像 WriteProcessMemory 这样的函数可用?

java - 多线程客户端/服务器应用程序java问题

java - volatile 关键字有什么用?

c++ - 当另一个进程正在运行时,OpenMP 非常慢

java - 如何根据用户定义的参数执行 throttle ?

linux - 将图像从 TrueColor 更改为 1Bpp 调色板?