事件监听
$event主要用来监听一些系统级别的事件,也会处理一些基础的应用事件,这些事件部分会依赖无障碍权限才可以监听得到。
此对象是一个线程安全的对象,内部已经处理好了线程并发情况,因此可以在任何线程中调用。
挂载事件监听
此函数是[唯一监听器],全局只会被设置一次(用户调用),当调用多次该函数时,后者将覆盖前者的数据。
如果想要取消[唯一监听器],只需要将第二个参数设置为null即可,例如:$event.on("lock",null);//取消锁屏事件
在$event中,事件分为好几个大类,一般有:(1)系统事件 (2)无障碍事件 (3)软件内部事件
一般情况下:(1)系统事件:不需要任何权限,但也有个例(比如:蓝牙需要附近设备权限以及位置权限), 但在(2)无障碍事件中:需要开启无障碍权限,否则无法监听得到。
参数 : name {string} 事件类型名称
参数 : callback {(data)=>{log(data);};} 回调函数
添加事件监听
每次调用该函数,否会增加一个监听器,即使是相同的名称,也会添加到监听器列表中。
在$event对象中,存在两种事件触发机制:[唯一监听器]和[监听器列表]
[唯一监听器]是通过on(name,callback)函数来进行设置的,它是全局唯一的,当事件触发的时候,只会被调用一次。
[监听器列表]是通过add(name,callback)函数来进行添加的,你可以多次添加多个监听器,甚至允许名称相同,当事件触发时,会调用你添加的所有监听器(软件重启后,监听器列表会被重置清空)。
当系统事件触发的时候,会先触发[唯一监听器],然后再触发[监听器列表]中的所有监听器。
参数 : name {string} 事件类型名称
参数 : callback {(data)=>{log(data);};} 回调函数
获取监听器列表名
返回 : {string[]} 监听器列表名
清空监听器列表