2

我有一个自定义的 EditText 视图。它扩展了默认设置并添加了显示 TimePickerDialogFragment、NumberPickerDialogFragment 和类似内容的能力......

我所有的 FragmentDialogs 都在使用总线系统,以使重新附加到父活动变得不必要......

通常,我在创建时注册所有对象并在onPause其父活动中注销它们......为此我使用范围总线,它保存对所有已注册对象的引用并onPause在活动中自动注销它们。到目前为止,这项工作是最佳的。我所有的自定义类都使用一个构造函数,它接收对作用域总线的引用......所以该类只需要在作用域总线上注册自己,不需要再注销自己,作用域总线会自动完成。

现在注册我的自定义edittext没问题,但是如何自动注销呢?我在 XML 中添加视图,我不想手动将所有视图添加到我的作用域总线中。

有谁知道注销如何以某种方式自动化?

4

1 回答 1

1

由于您使用的是奥托。你可以看看他们是如何找到@Subscribe方法的:https ://github.com/square/otto/blob/master/library/src/main/java/com/squareup/otto/AnnotatedHandlerFinder.java

从设计的角度 (IMO) 来看,您的观点混合了两种职责 - 一些 UI 表示和与较低系统层的通信。常识规则——班级只负责一件事。

您可以从其他角度考虑这一点。在任何不使用总线的项目中重用这些组件将更加困难。想想你的内部设计,就像你要开源你的系统组件一样。

于 2013-08-23T13:14:02.343 回答