java - 在接口(interface)中创建一个定期调用的方法 - Java

标签 java android interface location abstract-class

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

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

我怎样才能做到这一点?

编辑:

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

最佳答案

假设您创建了这样一个界面:

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
    }

}

关于java - 在接口(interface)中创建一个定期调用的方法 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27182708/

相关文章:

java - 使用 org.reflection 从 java 中的特定类获取带注释的方法

android - 如何保存谷歌登录集成 Firebase

android - 添加到 Android 主屏幕时,create-react-app 无法正常工作

web-applications - 有可用的 HTML5 RIA 工具包吗?

c++ - 无法在 C++ 错误中实例化抽象类

java - Spring Tool Suite 入门指南不起作用

Java BLE 不返回服务

java - 如何使用 hibernate 使用现有对象创建复合键对象

android - 发布 Android 版 twitter 应用程序的源代码

c# - 接口(interface)、继承、隐式运算符和类型转换,为什么会这样?