在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
語句中處理它。