我的应用程序有大约50个我要向其注册/注销我的监听器的活动。传统的方式可能是通过在每个活动中编写它来进行注册。有什么办法可以全局定义我的监听器。
我建议您在中央注册中心注册您的活动,也许是同步的Set或List(我想您需要为所有活动实现一个通用接口,以便能够这样做)。然后,您的听众将能够处理此列表并在每个活动中注册。否则,听众只会在此中央注册器中注册。因此,注册服务商也将充当发布者的角色,并将订阅向下传递到所有已注册的活动。
首先,我认为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。