1.Observable 类
这个类的主要作用是设计我们需要的观察值,和获取观察值的函数
public interface Observable { /** * 这里是写需要观察的变量和对于提取需要的观察函数。 */ enum Cycle{ STARTED,RUNNING,DONE,ERROR } Cycle getCycle(); void start(); void interrupt(); }
从这里可以看出我们需要观察的是线程的生命周期,因此有 STARTED,RUNNING,DONE,ERROR四个,同时还定义了获取状态的函数getCycle。
2.TaskLifecycle类
这个类的作用类似于一个响应器,也就是在我们需要observer的变量发生变化时,就会做出响应。
public interface TaskLifecycle<T> { /** * 这里实际上相当于观察者一旦观察到变化后进行的相应 * @param thread */ void onStart(Thread thread); void onRunning(Thread thread); void onFinish(Thread thread); void onError(Thread thread); class EmptyTaskLisfcycle<T> implements TaskLifecycle { @Override public void onStart(Thread threa