android

Android中wait的异常处理方法

小樊
82
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
看了该问题的人还看了