听众是否是一个很好的解决方案,它们是如何实现的?

时间:2013-09-05 11:45:47

标签: java android architecture listener handler

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

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

这是一个很好的解决方案吗?这个问题通常如何解决?我应该使用哪些现成的类/框架?

3 个答案:

答案 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);