即使我退出我的应用程序并进入主屏幕或浏览其他应用程序,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/