android 自定义一个类,继承Thread和观察者
时间: 2024-05-16 18:13:21 浏览: 6
可以这样定义一个类,继承自Thread和观察者:
```java
public class CustomThread extends Thread implements Observer {
private Observable observable;
public CustomThread(Observable observable) {
this.observable = observable;
observable.addObserver(this);
}
@Override
public void run() {
// 线程逻辑
// ...
}
@Override
public void update(Observable observable, Object arg) {
// 接收被观察者通知后的处理逻辑
// ...
}
}
```
在构造函数中,我们需要传入一个被观察者对象,然后将当前对象注册为该被观察者的观察者。在run方法中,编写线程逻辑,当被观察者通知时,update方法会被自动调用,可以在其中编写通知后的处理逻辑。
相关问题
android 自定义一个类,继承Thread和被观察者
可以这样实现:
```java
import java.util.Observable;
public class MyThread extends Thread implements Observable {
private boolean isRunning;
private boolean isFinished;
public MyThread() {
isRunning = false;
isFinished = false;
}
@Override
public void run() {
isRunning = true;
// 执行具体的任务
isRunning = false;
isFinished = true;
setChanged();
notifyObservers();
}
public boolean isRunning() {
return isRunning;
}
public boolean isFinished() {
return isFinished;
}
}
```
在这个类中,我们继承了Thread类,并且实现了Observable接口,使得这个类可以被观察者观察。在run()方法中,我们执行具体的任务,并在任务完成后设置isFinished为true,然后调用setChanged()和notifyObservers()方法,通知所有的观察者这个类的状态发生了改变。
使用这个类时,可以通过调用start()方法来启动线程,然后通过isRunning()和isFinished()方法来获取线程的状态。同时,可以通过调用addObserver()方法来添加观察者。例如:
```java
MyThread myThread = new MyThread();
myThread.addObserver(new Observer() {
@Override
public void update(Observable o, Object arg) {
// 处理线程完成后的逻辑
}
});
myThread.start();
```
java定义一个thread类,并继承thread类
好的,下面是一个Java定义Thread类并继承的代码示例:
```
public class MyThread extends Thread {
@Override
public void run() {
// 在这里编写线程执行的代码
System.out.println("线程执行中...");
}
}
```
在这个示例中,我们定义了一个名为MyThread的类,它继承了Thread类。我们重写了Thread类中的run()方法,在其中编写了线程要执行的代码。在这个示例中,我们只是简单地打印了一条消息。
现在,我们可以创建一个MyThread对象,并调用它的start()方法来启动线程,如下所示:
```
MyThread myThread = new MyThread();
myThread.start();
```
当我们调用start()方法时,线程将被创建并且run()方法将被执行。在这个示例中,我们的线程将打印一条消息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)