我试图延迟 - 或者让我睡觉 - 我的Java程序,但是发生了错误.
我无法使用Thread.sleep(x)
或wait()
.出现相同的错误消息:
未报告的异常java.lang.InterruptedException; 必须被抓住或宣布被抛出.
在使用Thread.sleep()
或wait()
方法之前是否需要任何步骤?
Kon*_*rus 574
你面前有很多阅读.从编译器错误到异常处理,线程和线程中断.但这会做你想要的:
try {
Thread.sleep(1000); //1000 milliseconds is one second.
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*nov 195
正如其他用户所说,你应该用一个try{...} catch{...}
区块围绕你的电话.但是自从Java 1.5发布以来,有一些TimeUnit类和Thread.sleep(millis)一样,但更方便.您可以选择睡眠操作的时间单位.
try {
TimeUnit.NANOSECONDS.sleep(100);
TimeUnit.MICROSECONDS.sleep(100);
TimeUnit.MILLISECONDS.sleep(100);
TimeUnit.SECONDS.sleep(100);
TimeUnit.MINUTES.sleep(100);
TimeUnit.HOURS.sleep(100);
TimeUnit.DAYS.sleep(100);
} catch (InterruptedException e) {
//Handle exception
}
Run Code Online (Sandbox Code Playgroud)
它还有其他方法: TimeUnit Oracle Documentation
小智 13
使用以下编码结构来处理异常
try {
Thread.sleep(1000);
} catch (InterruptedException ie) {
//Handle exception
}
Run Code Online (Sandbox Code Playgroud)
把你Thread.sleep
的尝试捕获块
try {
//thread to sleep for the specified number of milliseconds
Thread.sleep(100);
} catch ( java.lang.InterruptedException ie) {
System.out.println(ie);
}
Run Code Online (Sandbox Code Playgroud)
当使用Android(我使用Java的唯一时间)时,我建议使用处理程序而不是让线程进入休眠状态.
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.i(TAG, "I've waited for two hole seconds to show this!");
}
}, 2000);
Run Code Online (Sandbox Code Playgroud)
参考:http://developer.android.com/reference/android/os/Handler.html
归档时间: |
|
查看次数: |
883764 次 |
最近记录: |