我有工作代码,但我的解决方案看起来并不理想。我的问题是,如果存在这样的comon设计模式,我可以使用它。共享覆盖视图的设计模式
我有4个不同的活动,所有做音频播放。我有一个管理播放的公共类(Player
),因此当活动想要播放时,它会调用Player
的唯一实例。
无论哪Activity
目前正在积极想显示与播放信息相同的重叠视图/控制等,这由我创造一个PlayerView.xml布局解决了我include
每个Activity
布局。
最后我有一个PlayerListener
我在播放器上注册以接收播放通知。当PlayerListener
收到通知时,它会修改当前活动的Activity
中的PlayerView
(例如,将播放曲目名称设置为TextView
,PlayerView
)。
为了使PlayerListener
知道哪个Activity
是当前激活它有一个方法setParent(ViewGroup parent)
其无论是在创作和onResume
每个Activity
调用自己的布局父设置为监听器。 PlayerListener
然后为PlayerView.xml中的每个组件(例如Button)添加监听器,并从之前的Activity
中删除父监听器。
对我来说,我对活动之间的每次更改都必须添加/删除一堆听众,但(afaiu)因为每个include
创建了引用布局的副本,这意味着PlayerView
在布局中是唯一的包括我需要这样做(可能跳过听众的删除,但这可能会扩大到更多的活动时,可能会产生性能问题)。
我知道我可以在一个地方做一个Activity超类,但是这并没有消除不断增加/删除侦听器的潜在问题。有没有更好的,标准的做法?
谢谢!
我认为片段会有相同的问题添加/删除监听器时,他们之间共享不同的活动,但也许我误解了..? – jola 2015-03-15 06:35:04