全局监听器
其实只是把每个创建的监听器添加入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!");