在 Interface 中创建一个定期调用的方法 - Java



我想创建一个接口,其中包含一个定期调用的方法A()。一个常见的例子是 Android 中 LocationListner 的 LocationChanged() 方法。

如果有人实现了我的接口,那么当我从服务器获得一些新读数时,应该调用 A()。

我怎样才能做到这一点?

编辑:

我想创建一个类似于 Android 中LocationListener界面onLocationChanged功能的方法。每当我获得新数据时,我都想将其传递给此方法,并且实现我的接口的人应该在该方法中获取新数据。

假设您创建了一个如下所示的接口:

public interface MyListener {
    public void a(int data);
}

这是您的服务器类:

public class Server {
    private MyListener mListener;
    public static void setListener(MyListener listener) {
        mListener = listener;
    }
    /**
    * This is the method you should call when you get new data
    */
    private void doSomeWork() {
        int data = 0;
        // Process data
        if(mListener != null)
            mListener.a(data);
    }
}

然后你可以像这样实现来接收数据:

public class MainActivity extends Activity implements MyListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Blah blah blah
        Server.setListener(this);
    }
    @Override
    public void a(int data) {
        // You can receive the data here
    }
}

最新更新