Android观察者回调通知
1.自定义控件中,子空间回调通知主控件。
/** * 1.监听回调接口。 */ public interface ChooseListener { /** * 返回参数 */ void onSettingData(boolean isRestored); } /** * 2.设置外部监听回调接口。 * @param listener */ public void setListener(ChooseListener listener) { mOutListener = listener; } /*3.外部回调*/ mEffectSetting.setListener(new ChooseListener() { @Override public void onSettingData(boolean isRestored) { 。。。。。。 } });
2.多界面回调通知
/** * 1.用于监听用户发生改变 * @author jxxu2 * */ public interface AccountListener{ /** * 用户发生改变的回调 * @param isAnonymous 是否为匿名用户 */ void onUserChange(boolean isAnonymous); }; /**2.用于存储外部的观察者*/ private ArrayList<AccountListener> mListenerList = new ArrayList<AccountManager.AccountListener>(); /** * 3.注册用户发生改变的监听 * @param listener * @return */ public boolean addAccountListener(AccountListener listener){ if(listener == null) return false; if(!mListenerList.contains(listener)){ mListenerList.add(listener); return true; }else return false; } 4.在各个界面处理相应的回调
/**
* 解注册指定观察者
* @param observer 被解注册的观察者
* @return 观察者对象在已注册的列表中,则将该观察者从列表中移除,并返回true,否则,返回false
*
*/
public boolean unregisterObserver(RecordObserver observer){
return mObserverList.remove(observer);
}