向所有活动全局添加/删除侦听器

问题描述 投票:0回答:2

我的应用程序有大约50个我要向其注册/注销我的监听器的活动。传统的方式可能是通过在每个活动中编写它来进行注册。有什么办法可以全局定义我的监听器。

java android listener
2个回答
0
投票

我建议您在中央注册中心注册您的活动,也许是同步的Set或List(我想您需要为所有活动实现一个通用接口,以便能够这样做)。然后,您的听众将能够处理此列表并在每个活动中注册。否则,听众只会在此中央注册器中注册。因此,注册服务商也将充当发布者的角色,并将订阅向下传递到所有已注册的活动。


0
投票

首先,我认为50项活动过多,我认为您做错了。

第二,根据您的情况,您可以设置BaseActivity并在适当的生命周期事件中注册和注销您的侦听器。

class BaseActivity: AppCompatActivity() {


    override fun onResume() {
        super.onResume()
        //register your listener here
    }

    override fun onStop() {
        super.onStop()
        //unregister your listener here 
    }
}

然后扩展BaseActivity],而不是扩展Activity。

© www.soinside.com 2019 - 2024. All rights reserved.