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



我的应用程序有大约50个活动,我想注册/取消注册我的侦听器。传统的方法可以是通过在每一个活动中写入来注册它。有什么方法可以在全球范围内定义我的听众吗。

首先,我认为50个活动太多了,我认为你做错了什么。

其次,对于您的情况,您可以制作BaseActivity,并在适当的生命周期事件中注册和注销侦听器。

class BaseActivity: AppCompatActivity() {

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

然后,您将扩展BaseActivity,而不是扩展"活动">

我建议您在中央注册器注册您的活动,也许是同步的Set或List(我想您需要为所有活动实现一个通用接口才能这样做(。然后,您的听众将能够处理这个列表,并在每个活动中注册。或者听众只需在这个中央登记处登记即可。因此,登记员也将充当发布者,并将订阅传递给所有已登记的活动。

最新更新