监听器实现者:
public class MyActivity extends Activity implements InternetManager.Listener { private TextView mText; private InternetManager mInetMgr; /* called just like onCreate at some point in time */ public void onStateChange(boolean state) { if (state) { mText.setText("on"); } else { mText.setText("off"); } } public void onCreate() { mInetMgr = new InternetManager(); mInetMgr.registerListener(this); mInetMgr.doYourWork(); } }
自定义类,监听器作为内部属性(包含方法),
类中存在调用监听器内部方法的地方,
set不同的监听器实现者,处理的方式便不一样,
监听器相当于一个钩子,做回调使用。
public class InternetManager { // all the listener stuff below public interface Listener { public void onStateChange(boolean state); } private Listener mListener = null; public void registerListener (Listener listener) { mListener = listener; } // ----------------------------- // the part that this class does private boolean isInternetOn = false; public void doYourWork() { // do things here // at some point isInternetOn = true; // now notify if someone is interested. if (mListener != null) mListener.onStateChange(isInternetOn); } }