1
A
回答
0
假设您使用Swing编程Java,则在Timer类中有一个名为isRunning()的方法。
http://download.oracle.com/javase/7/docs/api/javax/swing/Timer.html#isRunning%28%29
问候
1
您可以通过记录定时器唯一的整数来管理您的,并用它后来取消。我发现一个有用的地方设置/取消这是在onVisibilityChanged(布尔)覆盖。我假设你的定时图像是用于动画的。
// start
if (renderLoop==-1) renderLoop = UiApplication.getUiApplication().invokeLater(this, 50, true);
// stop
if (renderLoop!=-1)
{
UiApplication.getUiApplication().cancelInvokeLater(renderLoop);
renderLoop = -1;
}
//assumes your screen implements Runnable
public void run() {
// do something cool
}
1
黑莓Timer
很俗气 - 它只是像Thread.sleep()
内Runnable
。非常普遍的黑莓手机,它包含很多你不需要的废话,并且不包含你需要的东西做需要。
我将转储定时器,使一类专门为我的需求:
abstract public class MyTimer extends Thread {
private final Object waitobj = new Object();
private volatile boolean running;
private volatile boolean canceled;
private final long due;
public MyTimer setDelay(long delay) {
long cur = System.currentTimeMillis();
due = cur + delay;
return this;
}
public MyTimer setAlarmTime(long dueTimeMillis) {
due = dueTimeMillis;
return this;
}
synchronized void setIsRunning(boolean running) {
this.running = running;
}
synchronized public boolean isRunning() {
return running;
}
synchronized public void cancel() {
synchronized (waitobj) {
canceled = true;
waitobj.notify();
}
}
public void run() {
setIsRunning(true);
long cur = System.currentTimeMillis();
long sleep = due - cur;
while (sleep > 0) {
synchronized (waitobj) {
waitobj.wait(sleep);
}
if (isCanceled()) return;
cur = System.currentTimeMillis();
sleep = due - cur;
}
alarm();
setIsRunning(false);
}
private boolean isCanceled() {
return canceled;
}
abstract void alarm();
}
那我就调用它是这样的:
timer = new MyTimer() {
void alarm() {
// do cool things
}
};
timer.setDelay(10000).start();
如果我要取消它,我会做像这样:
if (timer.isRunning()) {
timer.cancel();
}
或者干脆
附注:注意volatile
和MyTimer类中的东西。
相关问题
- 1. 黑莓:检查是否无头应用程序正在运行
- 2. 如何检查在黑莓
- 3. 如何检查计时器任务是否在后台运行?
- 4. 是否可以在黑莓OS 6,7和7.1上运行黑莓OS 10
- 5. 检查Httpconnection是否开放黑莓
- 6. 检测黑莓10 Android运行时
- 7. 如何检查我是否在运行或设计时间?
- 8. 黑莓关闭计时器
- 9. 如何在mac上运行黑莓模拟器
- 10. 如何检查JBoss是否在Unix服务器上运行?
- 11. 如何检查magento是否在zend服务器上运行
- 12. 如何检查我是否在iPhone6s Plus模拟器上运行
- 13. 如何检查浏览器是否在MAC上运行?
- 14. 如何检查Kibana 4是否在Linux机器上运行?
- 15. 如何检查MongoDB服务器是否在pc上运行
- 16. 黑莓开发 - JFreeChart是否在黑莓上工作?
- 17. 我的应用程序是否在黑莓模拟器上运行?
- 18. 在黑莓上运行Apache,php和mysql
- 19. 在黑莓显示计时器
- 20. 黑莓App仍在运行
- 21. 代码检查黑莓模拟器
- 22. 如何在Linux上检查服务是否正在运行Mint
- 23. 黑莓IT策略检查
- 24. 黑莓版本检查
- 25. 如何检查比赛检测器是否在运行时启用?
- 26. 如何在运行时检查iOS4中是否存在字体
- 27. 如何在运行时检查类方法是否存在?
- 28. 无法在黑莓7.0设备上使用网络检查器
- 29. 如何在黑莓jde4.5上运行多个应用程序jde4.5
- 30. 如何在黑莓手机上运行.apk文件?
但在上黑莓 – RVG
计时器类有未isRunning()方法,然后如何检查 – RVG
黑莓使用Java-ME,因此链接到Java 7个文档不是那么有用。 –