在Android中,wait()
方法用于让当前线程等待,直到其他线程调用此对象的notify()
或notifyAll()
方法。在使用wait()
方法时,可能会抛出InterruptedException
异常。为了正确处理这种异常,你需要使用try-catch
语句。
以下是一个简单的示例,展示了如何在Android中使用wait()
方法以及如何处理InterruptedException
异常:
public class ExampleActivity extends AppCompatActivity {
private final Object lock = new Object();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
new Thread(new Runnable() {
@Override
public void run() {
synchronized (lock) {
try {
System.out.println("线程等待中...");
lock.wait(); // 暂停当前线程,直到其他线程调用notify()或notifyAll()方法
System.out.println("线程已唤醒...");
} catch (InterruptedException e) {
// 处理InterruptedException异常
e.printStackTrace();
}
}
}
}).start();
// 在主线程中调用notify()方法,唤醒等待的线程
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
synchronized (lock) {
lock.notify(); // 唤醒等待的线程
}
}
}, 3000);
}
}
在这个示例中,我们创建了一个新的线程,该线程在lock
对象上调用wait()
方法。我们在主线程中使用Handler
延迟3秒后调用lock.notify()
方法,以唤醒等待的线程。当wait()
方法抛出InterruptedException
异常时,我们在catch
语句中处理它。