zoukankan      html  css  js  c++  java
  • JAVA android 关于全局监听器

    全局监听器

    其实只是把每个创建的监听器添加入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!");
  • 相关阅读:
    npm,umi,yarn
    PHPStorm 快捷键, 到页面顶部和底部
    百度统计
    公共管理之重置密码
    ALT+J 多行编辑
    PHP,Excel导出换行
    art-template 弹出上传多图
    java mock
    mysql查找字符串出现位置
    Spring 依赖注入,在Main方法中取得Spring控制的实例
  • 原文地址:https://www.cnblogs.com/PandaQ/p/8493157.html
Copyright © 2011-2022 走看看