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!");
  • 相关阅读:
    sql去重复
    验证 decimal 和 数字
    OleDbConnection读取Excel
    排班知识点
    sql基础
    SQL Server 获取月份的具体天数
    2016 Excel 展示 Sqlserver数据并制作图表
    SQL Server跨域查询
    SqlSugar中CASE WHEN的用法
    Microsoft.AspNetCore.Mvc.Versioning学习笔记
  • 原文地址:https://www.cnblogs.com/PandaQ/p/8493157.html
Copyright © 2011-2022 走看看