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!");

 

转载于:https://www.cnblogs.com/PandaQ/p/8493157.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值