監聽器實現者:
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); } }
