溫馨提示×

Android中wait的異常處理方法

小樊
121
2024-12-05 02:32:24
欄目: 編程語言

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女