JAVA android 关于全局监听器

摘要:
听众。包含(listener)&&listener!=null){Log.i(“testSDKListenerList”,“Addalistener!”);

全局监听器

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

免责声明:文章转载自《JAVA android 关于全局监听器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOS学习之蓝牙4.0elasticsearch配置文件解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JAVA:事件监听器之键盘监听

addKeyListener public void addKeyListener(KeyListener l)添加指定的按键侦听器,以接收发自此组件的按键事件。如果 l 为 null,则不会抛出异常并且不执行动作。  java.awt.event 接口 KeyListener 用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(...

JavaWeb总结(八)

对象作用域    在Servlet里可以用一个名字绑定一个对象,并且在应用中传递和使用这个对象 作用域对象 属性操作方法 作用域范围说明 ServletContext(上下文) void setAttribute(String,Object) Object getAttribute(Sting) void removeAttribute(Str...

Oracle 数据库监听配置

一、监听器(LISTENER)   监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。   二、本地服务名(Tnsname)   Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器...

SpringBoot启动过程中涉及到了扩展接口

SpringApplicationRunListener接口 1、ApplicationListener接口 是ApplicationContext的事件监听器 2、EnvironmentPostProcessor接口 上下文环境后置处理器,事件中调用 3、PropertySourceLoader接口 自定义配置文件加载器,自己解析配置文件属性...

Javaweb统计在线人数的小栗子

最近在学习Javaweb相关的内容(不黑不吹之前对web开发零基础),下面通过一个统计在线人数的小栗子讲讲Servlet监听器吧 开发环境 eclipse  tomcat 7 先说说这个小栗子的构思:         首先要考虑的就是通过什么方式能够统计在线人数?很容易想到可以通过session来统计在线人数为什么不是request呢?因为request在...

jmeter之如何减负-实现稳定超高并发测试(性能调优)之正确添加监听器

jmeter之如何减负-实现稳定超高并发测试(性能调优)在测试过程中,初学者使用工具不当,添加众多监控组件,非常想看到实时报告,跑不了一会,jmeter就卡死,只得重启 下面来总结下如何正确使用jmeter,有效利用执行资源,小型机器也可以实现高并发负载。 减负一: 优化监听(GUI模式)“查看结果树”,需要勾选“仅日志错误”,这样只会保存错误日志到内存,...