我想创建一个包含定期调用的方法A()的接口。一个常见的例子是Android中的LocationListner的onLocationChanged()方法。
如果有人实现了我的界面,那么当我从服务器获得一些新的读数时,应该调用A()。
我怎样才能做到这一点?
修改
我想在Android中创建一个与onLocationChanged
LocationListener
接口类似的方法。
每当我获得新数据时,我想将其传递给此方法,并且实现我的接口的人应该在该方法中获取新数据。
答案 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
}
}