全局监听器
其实只是把每个创建的监听器添加入List里 当SDK里调用一次的时候 遍历所有的监听器 执行每个监听器的这个方法就行了
好吧 其实就是观察者模式啦
1.首先写一个监听器的接口
public interface testSDKListener {
public void test(String str);
}
2.写这个监听器的实现方法
public class testSDKListenerImpl {
private testSDKListener m_listener;
public void setListener(testSDKListener listener) {
m_listener = listener;
}
public void test(String str) {
if (m_listener != null) {
m_listener.test(str);
}
}
}
3.创建一个List<Listener> 然后把所有创建的监听器都加进去 在执行的时候遍历所有监听器
public class testSDKListenerList {
private static testSDKListenerList instance;
private List<testSDKListener> listeners;
public static testSDKListenerList getInstance() {
if (instance == null) {
instance = new testSDKListenerList();
}
return instance;
}
private testSDKListenerList() {
listeners = new ArrayList<testSDKListener>();
}
public void setSDKListener(testSDKListener listener) {
if (!listeners.contains(listener) && listener != null) {
Log.i("testSDKListenerList", "Add a listener!");
this.listeners.add(listener);
}
}
public void test(String str) {
for (testSDKListener listener : listeners) {
listener.test(str);
}
}
}
4.在主程序中创建监听器
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testSDKListenerList.getInstance().setSDKListener(new testSDKListener() {
@Override
public void test(String str) {
Log.d("Listener.test", "str="+str);
}
});
}
5.在SDK中执行监听器的方法
testSDKListenerList.getInstance().test("test success!");