【问题标题】:Create a method in Interface which gets called periodically - Java在接口中创建一个定期调用的方法 - Java
【发布时间】:2015-01-26 18:16:59
【问题描述】:

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

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

我怎样才能做到这一点?

编辑:

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

【问题讨论】:

  • 这是为人们嵌入到他们自己的应用程序中的库吗?还是您希望其他应用与您的应用通信?
  • 你能详细说明一下吗
  • @Thilo 我想在我的应用程序中使用界面
  • @therealprashant 你能帮我一些代码吗?
  • @therealprashant 我已经编辑了问题

标签: java android interface location abstract-class


【解决方案1】:

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

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
    }

}

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 2022-01-23
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多