大家好 我做了一个秒表。暂停我使用Thread.suspend()并继续使用Thread.resume()。但简历没有恢复工作。 代码:
pause(){
shouldRun = false;
currentThread.suspend();
}
resume(){
shouldRun = true;
currentThread.resume();
}
而(shouldRun){ ....... }
答案 0 :(得分:5)
为什么Thread.suspend()
和Thread.resume()
被弃用是有原因的 - 出于各种原因,这不是一个好主意。最重要的是,线程本身最适合知道如何安全地暂停(例如,在没有锁定的情况下)。
我建议您重新考虑您的设计,以避免使用暂停/恢复。如果您告诉我们更多关于您要实现的目标,我们可以为您提供更多帮助。
答案 1 :(得分:2)
如果你真的想要暂停一段时间,请看一下java同步,特别是Object.wait()和Object.notify / notifyAll()
答案 2 :(得分:1)
我真的不明白为什么你使用Thread.suspend()和恢复秒表应用程序。
为什么不在每次用户按下秒表按钮并计算时间增量时获得System.currentTimeMillis()?
答案 3 :(得分:0)
Google称应用程序应在100或200毫秒内做出反应:http://developer.android.com/guide/practices/design/responsiveness.html
你应该在你的线程中使用Thread.Sleep()函数: public void run(){ 做{ Thread.sleep代码(200); 如果(shouldRun){ 做一点事(); //更新你的钟表 } 而(contidions); }
请注意不要直接在工作线程中执行任何UI更新: 使用和Handler将UI更新发送到主线程:只需UI更新功能。