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個文檔不是那麼有用。 –