# EventEmitter **Repository Path**: wu_fuqi/EventEmitter ## Basic Information - **Project Name**: EventEmitter - **Description**: 一个事件发射器 - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-11-23 - **Last Updated**: 2023-02-16 ## Categories & Tags **Categories**: android-modules **Tags**: None ## README ``` 一个事件发射接收器。 ``` #### 基础功能 1. 添加依赖 请在 build.gradle 下添加依赖。 ``` implementation 'cn.wufuqi:EventEmitter:1.0.1' ``` 2. 设置jdk8或更高版本 因为本sdk使用了jdk8才能使用的 Lambda 表达式,所以要在 build.gradle 下面配置jdk8或以上版本。 ``` android { .... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } ``` 3. 事件发送 ``` val event by lazy { EventEmitter() } ... event.emit("事件名",...事件发送的参数(任意类型)) ``` 4. 事件监听 1. on 监听 发送几次监听几次,如果执行了3次 emit("log事件") 则 on("log事件") 则会执行3次 ``` event.on("log事件"){ it[0] //发送的第0个参数 it[1] //发送的第1个参数 it[2] //发送的第2个参数 ... } ``` 2. once 监听 只监听一次事件,则会自动取消监听。如果执行了3次 emit("log事件") 则 once("log事件") 则只会执行一次,执行的一次为 emit 的第一次。 ``` event.once("log事件"){ it[0] //发送的第0个参数 it[1] //发送的第1个参数 it[2] //发送的第2个参数 ... } ``` 5. 取消监听 1. off 一个参数的 off(eventName: String) 取消 eventName 事件中的 所有事件 取消一个事件,当前事件下的全部事件 ``` event.off("log事件") ``` 2. off 两个参数的 off(eventName: String, listener: (param: MutableList) -> Unit) 取消 eventName 事件中的 listener 回调参数。 取消一个事件,当前事件下的一个对应事件 ``` event.off("log事件",已经注册过的回调方法) ``` 3. offAll 取消全部事件 取消 event 对象下的所有事件 ``` event.offAll() ``` 6. 获取全部事件名 获取事件名列表 list ``` event.eventNames() ``` 7. 通过事件名,获取注册的事件数量 ``` event.listenerCount("事件名") ``` 8. 获取注册的全部事件数量 ``` event.listenerCountAll() ```