在我的Android项目中,我有一个单例类,每秒从外部源检索数据。检索数据时,它应该通知某些数据显示对象有可用的新数据,以便他们可以自行更新。
我认为实现这一点的最佳方法是让数据显示器实现一些监听接口,然后注册数据检索器单例。
这是一个很好的解决方案吗?这个问题通常如何解决?我应该使用哪些现成的类/框架?
答案 0 :(得分:2)
你需要的是一个回调。如果有新数据可用,则会自动通知实现回调的其他类。
以下是Callbacks的详细说明。
答案 1 :(得分:2)
是看起来像观察者模式的经典用例。 http://en.wikipedia.org/wiki/Observer_pattern
答案 2 :(得分:1)
一种解决方案是通过observer pattern接口和Observer
类实现Observable
。例如:
import java.util.Observable;
public class DataModel extends Observable
{
public void retrieveData()
{
// ...
setChanged();
notifyObservers(); // or notifyObservers(someData);
}
}
import java.util.Observer;
public class ViewClass implements Observer
{
@Override
public void update(Observable observable, Object data)
{
// update the view
}
}
你需要像这样注册观察者:
DataModel dm = ...;
dm.addObserver(viewClass1);
dm.addObserver(viewClass2);
dm.addObserver(viewClass3);