1

在我的 Android 项目中,我有一个单例类,它每秒从外部源检索数据。当数据被检索到时,它应该通知一些数据显示对象有新的数据可用,以便他们可以更新自己。

我认为实现这一点的最好方法是让数据显示器实现一些监听接口,然后向数据检索器单例注册。

这是一个好的解决方案吗?这个问题一般是怎么解决的?我应该使用任何现成的类/框架吗?

4

3 回答 3

2

你需要的是一个回调。如果有新数据可用,将自动通知实现回调的其他类。

这是Callbacks的一个很好的描述。

于 2013-09-05T11:48:55.550 回答
2

Yes 看起来像是观察者模式的经典用例。http://en.wikipedia.org/wiki/Observer_pattern

于 2013-09-05T11:52:09.760 回答
1

一种解决方案是通过接口和类来实现观察者模式。例如:ObserverObservable

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);
于 2013-09-05T11:54:41.963 回答