Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 黑莓-TimerTask是否在后台运行?_Multithreading_Blackberry_Process_Timer_Background Application - Fatal编程技术网

Multithreading 黑莓-TimerTask是否在后台运行?

Multithreading 黑莓-TimerTask是否在后台运行?,multithreading,blackberry,process,timer,background-application,Multithreading,Blackberry,Process,Timer,Background Application,即使我退出我的应用程序并进入主屏幕或浏览其他应用程序,TimerTask是否仍然有效? 我阅读了论坛,发现线程类型的简单机制是在BB中使用TimerTask。我想让线程一直运行,即使我的应用程序没有启动(在第一次启动之后),这样当一个特定的时间间隔到来时,我可以从应用程序中显示我的对话框。 我尝试了以下方法:(我使用的代码不是MainScreen类,而是第一个push screen类) 但它只在我的应用程序启动时运行计时器。如果我退出应用程序并进入设备主屏幕,则可能是日志未打印(即计时器未运行)

即使我退出我的应用程序并进入主屏幕或浏览其他应用程序,TimerTask是否仍然有效? 我阅读了论坛,发现线程类型的简单机制是在BB中使用TimerTask。我想让线程一直运行,即使我的应用程序没有启动(在第一次启动之后),这样当一个特定的时间间隔到来时,我可以从应用程序中显示我的对话框。 我尝试了以下方法:(我使用的代码不是MainScreen类,而是第一个push screen类)

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


感谢您的帮助。

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


请查看一段时间后如何启动应用程序。

谢谢。我会试试这个并更新。还有一个问题,关于我上面的TimerTask代码本身,如果我使用UiApplication.getUiApplication().requestForeground();在应用程序关闭中,将允许我的应用程序始终运行,并且计时器也将始终正确运行?我希望看到您使用
requestBackground()。尽管如此,我认为这种方法会奏效;但我没有亲自使用过。从性能角度来看,
registerAlarm()
方法可能更好。我本人从未尝试过registerAlarm(),我认为它比让应用程序在后台连续运行更能提高性能。问题是您需要开发MIDlet来使用RegisterArm()。。。
 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);
  }
 }