Android 线程的暂停可以使用以下几种方式:
1. 使用 `sleep()` 方法:
```java
try {
Thread.sleep(2000); // 暂停 2 秒
} catch (InterruptedException e) {
e.printStackTrace();
}
```
这种方式会让线程暂停执行指定的时间,但是如果需要手动取消暂停,就需要使用 `interrupt()` 方法。
2. 使用 `wait()` 和 `notify()` 方法:
```java
// 暂停线程
synchronized (this) {
try {
this.wait(); // 让线程等待notify()被调用
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 恢复线程
synchronized (this) {
this.notify(); // 唤醒等待的线程
}
```
这种方式需要使用同步代码块来控制线程的暂停和恢复。
3. 使用 `Condition` 对象:
```java
private final Lock lock = new ReentrantLock();
private final Condition condition = lock.newCondition();
// 暂停线程
lock.lock();
try {
condition.await(); // 让线程等待condition.signal()被调用
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
}
// 恢复线程
lock.lock();
try {
condition.signal(); // 唤醒等待的线程
} finally {
lock.unlock();
}
```
这种方式使用了 `Lock` 和 `Condition` 对象来控制线程的暂停和恢复。相比于 `wait()` 和 `notify()`,这种方式更加灵活和安全。
4. 使用 `Semaphore` 类:
```java
private final Semaphore semaphore = new Semaphore(1);
// 暂停线程
semaphore.acquire(); // 获取许可,如果许可不可用则阻塞
// 恢复线程
semaphore.release(); // 释放许可
```
这种方式使用 `Semaphore` 类来控制线程的暂停和恢复。`Semaphore` 类提供了更细粒度的并发控制。
总的来说,Android 线程的暂停可以使用上述几种方式,根据具体情况选择合适的方式。