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

时间:2014-11-28 05:56:01

标签: java android interface location abstract-class

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

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

我怎样才能做到这一点?

修改

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

1 个答案:

答案 0 :(得分: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
    }

}